Что означает слово «мертвая говядина»? Я прочитал это из интервью. Это как-то связано с ipv6. Я подумал, что это может быть случайное шестнадцатеричное число, используемое для примеров, например, «Быстрая коричневая лиса перепрыгивает через ленивую собаку».
Я правильно понимаю? Или это имеет более существенное значение?
Ответы:
http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef
«Мертвая говядина» - очень популярное предложение в программировании, потому что оно построено только из букв af, которые используются в шестнадцатеричной системе счисления. Двоеточие в начале и в середине предложения делает это предложение (теоретически) действительным IPv6-адресом.
источник
Это выдуманное выражение, использующее только буквы AF, часто используемое, когда требуется распознаваемое шестнадцатеричное число. Некоторые системы используют его для различных целей, например, для отображения памяти, которая была освобождена и на которую больше не нужно ссылаться. В отладчике это значение может быть признаком того, что вы сделали ошибку. Из Википедии :
Число 0xDEADBEEF равно менее узнаваемому десятичному числу 3735928559 (без знака) или -559038737 (со знаком).
источник
Значение 0xDEADBEEF дает три практических преимущества, в основном для старых систем. Старые хаки на ассемблере / C, такие как я, использовали бы его для заполнения нераспределенной памяти, чтобы устранить проблемы с памятью. Кроме того, это игра слов из сленгового термина «мертвое мясо». Программист будет мертвым мясом, если DEADBEEF окажется в его указателях. Поздравляю парня, который первым придумал использовать значение DEADBEEF. Это умно во многих отношениях.
Что касается практических соображений, во-первых, это более заметно в шестнадцатеричном дампе памяти, потому что он фактически записывает слова, а не случайные шестнадцатеричные значения.
Во-вторых, если значение попадает в указатель, это с большей вероятностью вызовет ошибку выхода памяти за пределы допустимого диапазона. Адрес DEADBEEF был вне диапазона адресов систем (мы сейчас говорим о системах прошлого века), независимо от порядка байтов системы.
В-третьих, это с большей вероятностью вызовет сбой в системах, которым требуются даже значения граничных указателей для доступа к 16/32/64-битным данным. Вероятность ошибки в значении выше, поскольку оба 16-битных значения (DEAD, BEEF) нечетные.
источник
Поскольку IPv6-адреса записываются в шестнадцатеричной системе счисления, вы можете использовать "Hexspeak" (цифры 0-9 и буквы af) в адресах.
Есть ряд слов, которые вы можете использовать в качестве действительных адресов, чтобы лучше их закрепить.
Если вы
ping6 www.facebook.com -n
получите что-то вроде «2a03: 2880: f01c: 601: face: b00c : 0: 1».Вот некоторые примеры:
источник
Он также используется для отладки.
Вот удобный список некоторых из этих значений:
http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values
источник
Обычно люди используют его для обозначения фиктивных значений. Я думаю, что он в первую очередь использовался до идеи NULL-указателей.
источник
Это магическое число используется в разных местах, потому что оно хорошо читается на английском языке, что выделяет его среди других. В Википедии есть неполный список .
источник
Он использовался в качестве шаблона для хранения в памяти в виде серии шестнадцатеричных байтов (0xde, 0xad, 0xbe, 0xef). Вы могли видеть, не была ли повреждена память из-за аппаратного сбоя, переполнения буфера и т. Д.
источник
0xDEADBEEF обычно заполняется в массивах памяти, так что любое исключение при неправильном указании или знании о переполнении буфера и т. Д.,
источник