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