Как число из 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);

Объяснение кода листинга программы

  1. Объявляются две переменные: stat типа int и str типа char.
  2. В переменной stat фиксируется значение 0xff00.
  3. В цикле for происходит нарезка строки str значениями битов от старшего (15-й позиции) к младшему (0-й позиции).
  4. В каждой итерации цикла в соответствующую позицию строки str записывается значение бита: если бит установлен, то в позицию записывается символ '1', если бит не установлен, то в позицию записывается символ '0'.
  5. После завершения цикла, последняя позиция строки str инициализируется нулевым символом, что обеспечивает завершение строки.
  6. Выводится сообщение с значениями переменных stat и str.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы