![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
ACM!
Форумчанин
Регистрация: 19.06.2009
Сообщений: 382
|
![]()
Разъясните вот эту табличку (отсюда взял):
|ЛОГИЧЕСКИЕ ТИПЫ | |Название |Длина, Байт |OS |Значение | |BOOLEAN |1 |Linux, DOS |False, True | |BYTEBOOL |1 |Совместим с С |False, True | |WORDBOOL |2 |Win |False, True | |LONGBOOL |4 |Win |False, True | Я все время думал, что если Boolean, то 1 бит, а тут такое... Это правда? |
![]() |
![]() |
![]() |
#2 | |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
![]() Цитата:
Информация для размышления http://www.hostmake.ru/articles/assembler/213/
Стрелок-охотник
|
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 06.08.2009
Сообщений: 2,992
|
![]()
Минимальная ячейка памяти, которую может адресовать процессор - 1 байт. Оперировать с битами пришлось бы вручную, поэтому используется char или int (в Си). Про остальные виды булей вижу впервые.
|
![]() |
![]() |
![]() |
#4 | |
ACM!
Форумчанин
Регистрация: 19.06.2009
Сообщений: 382
|
![]()
Понятненько) А вот зачем тогда 4 байта или 2? Можно же одним обойтись, есть же (как там написано):
Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
тип boolean всегда занимал 1 байт памяти. Главное отличие типов
Boolean : False < True (!) ByteBool (1 байт), WordBool (2 байта), LongBool (4 байта) : False <> True различие в размерах не слишком критично, 2-х и 4-х байтовый буль нужен для того чтобы можно было без потерь преобразовать integer -> boolean -> integer Последний раз редактировалось rpy3uH; 10.11.2009 в 18:09. |
![]() |
![]() |
![]() |
#6 |
ACM!
Форумчанин
Регистрация: 19.06.2009
Сообщений: 382
|
![]()
Во-первых, зачем это надо (ну и пусть себе меньше False);
Во-вторых, а куда байты-то все-таки утекают лишние? На то, чтобы хранить информацию, что false <> true ![]() |
![]() |
![]() |
![]() |
#7 | |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
просто исторически так сложилось
Цитата:
Код:
Последний раз редактировалось rpy3uH; 10.11.2009 в 18:15. |
|
![]() |
![]() |
![]() |
#8 |
ACM!
Форумчанин
Регистрация: 19.06.2009
Сообщений: 382
|
![]()
Хмм... А зачем вообще число хранится в булевом типе? Мне от него надо только true или false, а он зачем то еще число хранит? Для того что ли, чтобы место не пропадало?
|
![]() |
![]() |
![]() |
#9 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
да просто так, от нечего делать. просто когда-то нужен был булевый тип размером в 4 байта. Когда булевый тип имеет размер 4 байта, проще приводить типы и проще всё унифицировать. Например, большинство API функций возвращают longbool.
|
![]() |
![]() |
![]() |
#10 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,855
|
![]()
4 байта для булена нужны для оптимизации работы программы, т.к. процессору (современному) проще 4 байта из памяти вытащить, чем 1.
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
PAS: byte --> boolean | Jean-Esther | Помощь студентам | 4 | 02.03.2009 21:29 |
Действия с переменными boolean в VBA | Юнлинг | Microsoft Office Excel | 3 | 25.12.2008 07:57 |
И опять boolean. | dimple | Помощь студентам | 4 | 04.05.2008 14:03 |
Boolean | Air | Общие вопросы Delphi | 2 | 16.02.2008 17:15 |
Boolean... | ZhekON | Общие вопросы Delphi | 2 | 17.06.2007 00:39 |