170 похожих чатов

Булевский тип представляет значения true (истина) и false (ложь); в

языке С для пред­ставления true применяется 1, а для представления false — 0.
• _Bool — ключевое слово для этого типа. Он является типом int без знака и должен быть настолько большим, чтобы обеспечить хранение значений из диапазона от 0 до 1.

Как это понимать? Почему он должен быть большим если там всего 0 и 1. Для этого же хватит и бита

20 ответов

13 просмотров

а где ты бит хранишь-то?

битов не существует, есть только байты

None- Автор вопроса
None
байт же всё равно не много

а байт ты где хранишь?

None
байт же всё равно не много

ну тут уже встают вопросы в выравнивании/легаси/машинные слова и прочее

None- Автор вопроса
Anatoly Shirokov
а байт ты где хранишь?

не понимаю вопроса. в памяти храню наверное

None
не понимаю вопроса. в памяти храню наверное

а чем оперирует процессор? не регистрами?

None
байт же всё равно не много

а вас формулировка "настолько большим" смутила или чего?

None- Автор вопроса
Пользователь 61681
а вас формулировка "настолько большим" смутила или...

да, не понимаю в каком смысле. есть типы 16, 32, 64. char 1 байт. Если в Bool тоже 1 байт, то это же нельзя назвать большим

None
да, не понимаю в каком смысле. есть типы 16, 32, 6...

"настолько большим" == "достаточно большим" в данном случае

Разве в с++ гдето сказано что true это 1 ?

N
Разве в с++ гдето сказано что true это 1 ?

Все, нашел, действительно. http://eelis.net/c++draft/conv.prom#6

None- Автор вопроса
N
Разве в с++ гдето сказано что true это 1 ?

the type bool can be converted to int with the value false becoming ​0​ and true becoming 1.

Любая переменная языка должна быть адресуема. Это значит, у каждой переменной должен быть адрес, причём такой, чтобы он отличался от адресов других переменных. Это вообще не С даже, а базовые понятия архитектуры вычислительных машин. Как ты при таких условиях будешь адресовать бит -- не понятно...

None- Автор вопроса
Ilya Zviagin
Любая переменная языка должна быть адресуема. Это ...

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

None
благодарю за то что попробовали объяснить, но я не...

Минимальная единица адресации памяти в любой ЭВМ -- байт, или так называемое машинное слово. Байт -- это традиционное название машинного слова длиной в 8 бит. Бывают другие размеры байтов (больше или меньше 8бит). Но меньше байта компьютер адресовать не может. Любая переменная языка, поскольку она должна размещаться в памяти, может быть только кратна по размеру байту: один байт, два байта, три байта и так далее. Меньше байта переменная быть не может.

None- Автор вопроса
Ilya Zviagin
Минимальная единица адресации памяти в любой ЭВМ -...

я думал Слово это 16 байт, два слова 32 байта, четыре слова 64 байта. Нет?

ещё раз. _Bool беззнаковый целый, обеспечивающий как минимум хранение двух значений 0 и 1, и , естественно, не менее байта, потому что менее байта не бывает. Собственно, тут и говориться, что это == unsigned char

None
я думал Слово это 16 байт, два слова 32 байта, чет...

СЛОВО -- это минимально адресуемая единица памяти. (к С и С++ это никакого отношения не имеет)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта