Биты числа
Есть число целого типа, которое мы вводим с клавиатуры. Задание: распечатать его биты. Очень прошу, подскажите, пожалуйста, как это сделать? :-?
Цитата:
Originally posted by MARcoDEN
Есть число целого типа, которое мы вводим с клавиатуры. Задание: распечатать его биты. Очень прошу, подскажите, пожалуйста, как это сделать? :-?
Есть число целого типа, которое мы вводим с клавиатуры. Задание: распечатать его биты. Очень прошу, подскажите, пожалуйста, как это сделать? :-?
Мнээээ... Считаю, что число положительное, вывожу всЕ биты (включая нулевые)
{
long int NUM;//то что будем переводить
char str[32];//то куда будем выводить
for(int i=31;i>=0;i++){
if (NUM & 1) str=1; //если последний бит числа = 1, то пишем 1
else str=0; //иначе - 0
NUM>>1; //сдвигаем число
}
если не нужно выводить ведущие нули в for - условии поставь NUm!=0
УдачИ!!!
str=(NUM & 1)+'0'
NUM<<1;
хи-хи...
После цикла написать что-то вроде str[32-i] = 0;
(если выводить всегда все 32 бита то можно проще str[32] = 0;)
Для надежности компиляции на новых компиляторах которые "не видят" переменную после цикла: int i; лучше вынести перед циклом.