我在 C 中有以下代码,它应该返回 8 位长数字串中每个数字的 4 位二进制表示。由于某种原因,它现在无限循环。
当前输出看起来像这样(12345677
作为输入):(0001 0010 0011 0000 0000 0000 0000 0000 0000 ...
无尽的零)。如您所见,前 3 个数字有效(我认为这很奇怪)。
这里出了什么问题?
#include<stdio.h>
#include<stdlib.h>
#define LENGTH 8
int main()
{
char number[LENGTH];
printf("Geef nummers in : ");
scanf("%s", number);
printf("Resultaat : ");
for(int i=0; i<LENGTH; i++) {
char re[4];
re[3] = ((number[i]) & 1) ? '1' : '0';
number[i] >>= 1;
re[2] = ((number[i]) & 1) ? '1' : '0';
number[i] >>= 1;
re[1] = ((number[i]) & 1) ? '1' : '0';
number[i] >>= 1;
re[0] = ((number[i]) & 1) ? '1' : '0';
number[i] >>= 1;
re[4] = '\0';
int res = atoi(re);
printf("%04d ", res);
}
printf("\n");
}