Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Почему объект класса Boolean(0/1) весит 1 байт, а не 1 бит?

ПрограммированиеC++ для начинающихБайты
Марк
  · 791
В современных архитектурах ЭВМ байт является минимальной адресуемой единицей хранения информации. Т. е. Каждый байт имеет свой адрес в RAM, по которому с ним можно работать. Действительно, для хранения булева значения, достаточно одного бита, но получить к нему доступ именно к этому биту в RAM сразу невозможно. Для наглядности можно провести аналогию с жилым домом, где есть этажи (байты) и квартиры (биты). Вы используете лифт, чтобы попасть сначала на нужный этаж, а затем, находясь на нужном этаже, вы попадаете в квартиру. При этом, попасть сразу в квартиру на лифте невозможно, как и получить доступ сразу к биту - сначала надо получить доступ к байту, в составе которого он находится.
2 эксперта согласны
Все верно. Минимальная адресуемая ячейка памяти - 1 байт.
Специалист в области управления и информатики в технических системах. Data Engeneer, IT...  · 30 авг 2021
Потому что минимальная по размеру, область памяти к которой можно обратится по адресу равна 1 байт.
Лучший
Инженер путей сообщения – строитель  · 25 авг 2021
Да, переменная логического типа должна занимать в памяти ровно 1 бит. Однако современные процессоры и оперативная память устроены так, что они адресуют память побайтово. И обрабатывают тоже не менее байта информации за раз (а то и не меньше 2, 4, 8 байт). Соответственно, если мы введём однобитный логический тип, то не сможем такие переменные чётко адресовать, да и на их... Читать далее
1 эксперт согласен
зож, сны, мистика, wi-fi  · 25 авг 2021

А смысл булин в 1 бит засовывать?

Адресация в памяти с точностью до 1 байта, там и будет ваш булин.

Можно конечно на эту ячейку памяти записать 8 булинов, это вы в своей программе можете сделать.

---

Булин из 1 байта, если вы его передадите параметром в функции, займет в стеке 4 или 8 байт, но не один байт и тем более не один бит.