Какой тип использовать, чтобы задать массив двоичных кодов - C (СИ)

Узнай цену своей работы

Формулировка задачи:

надо задать массив двоичных кодов вида: 1010, 0010, 0110 и т.п. что лучше взять? просто int потеряет не значащие нули (хз может это и не принципиально), а если писать 0x0010 то это вроде уже получится вообще другое число (в шестнадцатеричной системе), а мне с ними еще действия потом осуществлять...

Решение задачи: «Какой тип использовать, чтобы задать массив двоичных кодов»

textual
Листинг программы
  1. #include <stdint.h>
  2.  
  3. int main (void) {
  4.    
  5.     uint8_t line = 0; /* <--- отрезок*/
  6.     const uint8_t high_mask = 0xF0, low_mask = 0x0F; /* <--- маски для тетрад*/
  7.     const uint8_t shift = 4; /* <--- длина сдвига */
  8.    
  9.     line = 10 << shift; /* <--- начальная точка. код '1010' взят произвольно*/
  10.     line |= 7; /* <--- конечная точка. код '0111' взят произвольно*/
  11.    
  12.     /* если коды обоих концов отрезка равны 0... */
  13.     if ((((line & high_mask) >> shift) | (line & low_mask)) == 0) {
  14.         /* TODO */
  15.         ;
  16.     }
  17.     /* если логическое & кодов обоих концов отрезка не равно нулю... */
  18.     else if (((line & high_mask) >> shift) & (line & low_mask)) {
  19.         /* TODO */
  20.         ;
  21.     }
  22.     /* если логическое & кодов обоих концов отрезка равно нулю ... */
  23.     else if ((((line & high_mask) >> shift) & (line & low_mask)) == 0) {
  24.         /* TODO */
  25.         ;
  26.     }
  27.    
  28.     return 0;
  29. }

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

  1. Объявлена переменная line типа uint8_t
  2. Объявлены константы high_mask и low_mask типа uint8_t
  3. Объявлена константа shift типа uint8_t
  4. В переменную line записывается результат сдвига 10 на shift позиций вправо и последующего объединения с 7
  5. Если результат вычисления выражения ((((line & high_mask) >> shift) | (line & low_mask)) == 0) равен нулю
  6. Если результат вычисления логического И кодов обоих концов отрезка не равен нулю
  7. Если результат вычисления логического И кодов обоих концов отрезка равен нулю
  8. Возвращается 0

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


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

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

5   голосов , оценка 4.6 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы