Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Биты числа

2.9K
16 марта 2003 года
MARcoDEN
8 / / 16.03.2003
Есть число целого типа, которое мы вводим с клавиатуры. Задание: распечатать его биты. Очень прошу, подскажите, пожалуйста, как это сделать? :-?
356
16 марта 2003 года
molnij
159 / / 20.06.2000
Цитата:
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


УдачИ!!!

356
16 марта 2003 года
molnij
159 / / 20.06.2000
тока что дошло что тело цикла проще (да, и выше я еще + '0' забыл):

str=(NUM & 1)+'0'
NUM<<1;

хи-хи...
475
17 марта 2003 года
Winnie
90 / / 20.03.2000
неплохо было бы еще и 0 в конце строки поставить и соответсвенно char str[33] а не [32];

После цикла написать что-то вроде str[32-i] = 0;
(если выводить всегда все 32 бита то можно проще str[32] = 0;)

Для надежности компиляции на новых компиляторах которые "не видят" переменную после цикла: int i; лучше вынести перед циклом.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог