Как число из 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д