在C中填充和添加二进制字符串

时间:2017-02-02 16:36:19

标签: c binary

我的任务是在C中编写一个程序,它接受二进制数字串并添加它们。这两个字符串的长度可以不同,因此在添加之前,需要将它们填充到相同的大小。

    //Make copy of strings with proper padding
char *aCopy = (char *)calloc(size+1,sizeof(char));
char *bCopy = (char *)calloc(size+1,sizeof(char));

int i;
for(i = size; i >= 0; i--)
{
  aCopy[i] = '0';
  bCopy[i] = '0';
}

for (i = strlen(a); i >= 0; i--)
  if (i == 0 && a[i]=='1') //Two's complement
    aCopy[i] = '1';
  else
    aCopy[size - i] = a[strlen(a)-i];

for (i = strlen(b); i >= 0; i--)
  if (i == 0 && b[i]=='1') //Two's complement
    bCopy[i] == '1';
  else
    bCopy[size - i] = b[strlen(b)-i];

我遇到了一个问题,如果行注释“Two's complement”运行(它们用于将前导1位移到填充字符串的前面),填充字符串的长度变得比它应该多一个是。我无法弄清楚为什么会这样,而且它搞砸了我的计算。

编辑:为了澄清,额外的'0'字符被添加到二进制补码字符串的末尾。

0 个答案:

没有答案