Как число из 10сс перевести в 2сс? - C (СИ)
Формулировка задачи:
Получаю в программе на си в переменной int 4х байтовое число в 10сс 24576 мне из него нужно получить 2 младших байта в 2сс (2 старших байта в этом числе наверно будут нулевые, т.к число меньше 64к) Не могу найти код на чистом си для перевода 10сс в 2сс, на с++ что то попадается, но наверно это другой язык. зы - по форуму искал, пишет что нет совпадений, а в инетете нашел только с++, может кто то что то подскажет дельное?
Решение задачи: «Как число из 10сс перевести в 2сс?»
textual
Листинг программы
int stat = 0xff00; char str[17]; for (int i = 0; i < 16; i++) { str[i] = stat & (0x00000001 << (15 - i)) ? '1' : '0'; } str[16] = 0; printf("\n status %d, 2cc %s ", stat, str);
Объяснение кода листинга программы
- Объявляются две переменные:
stat
типаint
иstr
типаchar
. - В переменной
stat
фиксируется значение 0xff00. - В цикле
for
происходит нарезка строкиstr
значениями битов от старшего (15-й позиции) к младшему (0-й позиции). - В каждой итерации цикла в соответствующую позицию строки
str
записывается значение бита: если бит установлен, то в позицию записывается символ '1', если бит не установлен, то в позицию записывается символ '0'. - После завершения цикла, последняя позиция строки
str
инициализируется нулевым символом, что обеспечивает завершение строки. - Выводится сообщение с значениями переменных
stat
иstr
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д