Почему логический 1 байт, а не 1 бит размера? - PullRequest
112 голосов
/ 07 января 2011

В С ++,

  • Почему логический 1 байт, а не 1 бит размера?
  • Почему нет таких типов, как 4-битные или 2-битные целые числа?

Я упускаю все вышеперечисленное при написании эмулятора для процессора

Ответы [ 13 ]

0 голосов
/ 08 января 2011

Подумайте, как бы вы реализовали это на уровне эмулятора ...

bool a[10] = {false};

bool &rbool = a[3];
bool *pbool = a + 3;

assert(pbool == &rbool);
rbool = true;
assert(*pbool);
*pbool = false;
assert(!rbool);
0 голосов
/ 07 января 2011

Байт - это меньшая единица хранения цифровых данных компьютера. В компьютере RAM имеет миллионы байтов, и у каждого из них есть адрес. Если бы у него был адрес для каждого бита, компьютер мог бы управлять ОЗУ в 8 раз меньше, чем он может.

Подробнее: Википедия

0 голосов
/ 07 января 2011

Логическое значение было бы одним битом, если бы ваш процессор был 1-битным.

Как правило, размер бита процессора (например, 8-битный, 16-битный, 32-битный и т. Д.) Является мерой наименьшего размера данных, которыми может манипулировать процессор - таким образом, он также является размером адресное пространство. (Поскольку указатели и данные на многих уровнях - это одно и то же.).

...