Конструктивно большинство людей, которые «не могут придумать ни одной технологической причины, равной нулю, должны быть равны ложному», ошибаются.
Код выполняется процессорами.Большинство (если не все) процессоры имеют биты , группы битов и интерпретации групп битов .Тем не менее, что-то может быть 0
, 1
, byte
, word
, dword
, qword
и т. Д.
Обратите внимание, что на платформе x86 байтыэто октеты (8 бит), а слова обычно 16 бит, но это не обязательно.Старые процессоры имели 4-битные слова, и даже современные встроенные контроллеры низкого уровня часто используют как 7 или 12 бит на слово.
Тем не менее, что-то может быть «равно», «ноль», «больше», «меньше», «больше или равно» или «меньше или равно» в машинном коде.Нет такой вещи как null
, false
или true
.
Как правило, true
это 1
, false
это 0
и указатель null
может быть 0x00
, 0x0000
, 0x00000000
или 0x0000000000000000
, в зависимости от адресной шины width.
C # является одним из исключений, так как это косвенный типгде два возможных значения 0
и 1
не являются непосредственными значениями, а index структуры (представьте enum
в C или PTR
в сборке x86).
Это специально.
Важно отметить, однако, что такие проектные решения являются сложными решениями, тогда как традиционный, простой способпредположить, что 0
, null
и false
равны.