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

Sep 09, 2014 10:28


Прочитал анекдот для айтишников:

“Отрубил Илья Муромец Змею Горынычу голову, а на ее месте две выросло.

Отрубил Илья Муромец Змею Горынычу две головы, а на их месте 4 выросло.

Отрубил Илья Муромец Змею Горынычу 4 головы, а на их месте 8 выросло…

…Отрубил Илья Муромец Змею Горынычу 65536 голов, и умер Змей Горыныч. Потому что шестнадцатиразрядный был”.

…Эх, школьники, школьники! Чему вас только учат!

Шестнадцать разрядов вмещают числа от 0 до 65535, а следовательно, переполнение разрядности произойдет, когда отрубят уже 32768 голов.

Понимать надо!..

А потом из них вырастают айтишники, которые на компьютере только в игры играть умеют.

У одного админа справляли день рождения, тридцать два года. Я ему говорю:

- Ну, вот тебе уже и h20 лет!

А он так и не понял, в чем прикол.

Эх…

UPD. Какая прелесть, пишешь-пишешь бывало прозу, и в ответ десяток комментариев, а тут запостил боянистый анекдот, и вот оно, признание.

Ну ладно, раз так много программистов граждан путают значение с индексом, поясню.

Двумя байтами действительно можно передать 65536 значений, но в анекдоте-то не идет речи о головах с номерами "0", "1", "2"..."65536". Во-первых, ясно сказано: выросло n голов, а не "голова с номером n". А во-вторых, если бы это был индекс, то после переполнения разрядности у Змея выросла бы голова с номером "0". И почему бы он тогда умер?.. И почему тогда при отрубании очередной головы у Змея вырастали головы с индексом, соответствующим следующему двоичному разряду?..

Нет, в анекдоте явно имеется в виду не индексное значение, а именно количество, числовое значение двухбайтовой переменной, а Змей умер потому, что значение количества голов при переполнении стало равно нулю.

Собственно, очень печально, что приходится объяснять эту мысль людям, которые, теоретически, должны были понять, о чем речь.

Об этом я и сокрушался с самого начала.
Previous post Next post
Up