Минутка старческого ворчания

Прочитал анекдот для айтишников:
“Отрубил Илья Муромец Змею Горынычу голову, а на ее месте две
выросло.
Отрубил Илья Муромец Змею Горынычу две головы, а на ее месте 4
выросло.
Отрубил Илья Муромец Змею Горынычу 4 головы, а на ее месте 8
выросло…
…Отрубил Илья Муромец Змею Горынычу 65536 голов, и умер Змей
Горыныч. Потому что шестнадцатиразрядный был”.
…Эх, школьники, школьники! Чему вас только учат!
Шестнадцать разрядов вмещают числа от 0 до 65535, а
следовательно, переполнение разрядности произойдет, когда отрубят
уже 32768 голов.
Понимать надо!..
А потом из них вырастают айтишники, которые на компьютере только
в игры играть умеют.
У одного админа справляли день рождения, тридцать два года. Я
ему говорю:
— Ну, вот тебе уже и h20 лет!
А он так и не понял, в чем прикол.
Эх…
UPD. Какая прелесть, пишешь-пишешь бывало прозу, и в
ответ десяток комментариев, а тут запостил боянистый анекдот, и вот
оно, признание.
Ну ладно, раз так много программистов граждан путают
значение с индексом, поясню.
Двумя байтами действительно можно передать 65536 значений, но в
анекдоте-то не идет речи о головах с номерами "0", "1",
"2"..."65536". Во-первых, ясно сказано: выросло n голов, а не
"голова с номером n". А во-вторых, если бы это был индекс, то после
переполнения разрядности у Змея выросла бы голова с номером "0". И
почему бы он тогда умер?.. И почему тогда при отрубании очередной
головы у Змея вырастали головы с индексом, соответствующим
следующему двоичному разряду?..
Нет, в анекдоте явно имеется в виду не индексное значение, а
именно количество, числовое значение двухбайтовой переменной, а
Змей умер потому, что значение количества голов при переполнении
стало равно нулю.
Собственно, очень печально, что приходится объяснять эту мысль
людям, которые, теоретически, должны были понять, о чем
речь.
Об этом я и сокрушался с самого начала.
|
</> |