Я изучаю C, и часть моего упражнения имеет дело с побитовыми операторами. Я пытаюсь создать функцию, которая выводит дополнение 2 для ввода char.C - Печать двоичного файла для заданного символа
Вот то, что я до сих пор:
#include <stdio.h>
#include <stdlib.h>
void find_binary(char ch) {
long bit_index = 0;
unsigned long sz = sizeof(ch)*8-1;
for (bit_index = 0; bit_index <= sz; ++bit_index) {
int bit = (1 << bit_index) & ch;
printf("%d", bit);
}
printf("\n");
}
Вот результат: 0008032640
когда вход 'h'
.
Почему это целые числа печати, отличные от 0 и 1?
Поскольку вы печатаете 'Int 's, которые имеют значения, отличные от' 0' или '1'. – juanchopanza
Хм, так не из-за логической ошибки? – mrQWERTY
Вы печатаете значение каждого бита как int вместо 1 или 0. –