У меня есть следующий код в C, который должен возвращать 4-битное двоичное представление каждого числа в 8-значной длинной строке чисел. По какой-то причине это происходит бесконечно.Бесконечная петля - что происходит?
Токовый выход выглядит следующим образом: (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");
}
're [4] = '\ 0';' неопределенное поведение во время выполнения в вашем коде –
Удаление этой линии позволило решить эту проблему. Большое спасибо. – Melvin
ваш прием Мелвин :) –