二进制char数组到它的两个补码

时间:2014-09-11 18:12:36

标签: c

程序接收二进制数的字符数组,并将值更改为其二进制补码。我编译和错误状态我在某处错过了一个标点符号..好的,谢谢我修复了第二行的分号,现在我得到未定义的引用二进制补充任何想法?

#include <stdio.h>
void twosComplement(char binaryString[]);



int main()
{
    char binaryString[33];
    scanf("%32s",binaryString); //takes in Binary Number 32 bits max
    twoscomplement(binaryString);//calls function
    printf("%s\n", binaryString);//prints twosComplement of Binary Number input
    return 0;  
}


void twosComplement(char binaryString[])
{
    char zero = '0'; 
    char one ='1';
    int numBits;
     for( numBits = 0; binaryString[numBits]; ++ numBits) //iterates through all the characters
     {
         if( numBits == one)// changes value if character == '1'
         {
                    binaryString[numBits]= zero;
         }

         else 
         {
                    binaryString[numBits]= one;  // changes value is character doesn't == '1'                                       assuming user only input '0's and '1's
         }

        return;
    }
}

2 个答案:

答案 0 :(得分:0)

在第二行中,您缺少分号;

void twosComplement(char binaryString[]);

答案 1 :(得分:0)

在声明功能行2时缺少分号

#include <stdio.h>
void twosComplement(char binaryString[]);