Загрузка файла XHR не удалась только из моей установки IE 11

Как уже было сказано, стандарты C не имеют возможности напрямую писать двоичные числа. Однако есть расширения компилятора, и, судя по всему, C ++ 14 содержит префикс 0b для двоичного кода. (Обратите внимание, что этот ответ был первоначально опубликован в 2010 году.)

Одним из распространенных способов решения является включение файла заголовка со вспомогательными макросами . Одним из простых вариантов является создание файла, который включает определения макросов для всех 8-битных шаблонов, например:

#define B00000000 0
#define B00000001 1
#define B00000010 2
…

. Это приводит только к 256 #define s, а если больше 8-битного двоичного кода необходимы константы, эти определения могут быть объединены со сдвигами и OR, возможно с вспомогательными макросами (например, BIN16(B00000001,B00001010)). (Имея индивидуальные макросы для каждого 16-битного, не говоря уже о 32-битном, значение не правдоподобно.)

Конечно, недостатком является то, что этот синтаксис требует записи всех ведущих нулей, но это также может сделать это более понятный для использования, как установка битовых флагов и содержимого аппаратных регистров. Для функционально-подобного макроса, приводящего к синтаксису без этого свойства, см. bithacks.h, приведенную выше.

0
задан Ted Fitzpatrick 16 January 2019 в 00:16
поделиться