Hexspeak

Hexspeak

Hexspeak, как и Leet, является новой необычной формой записи слов английского языка.

Hexspeak был создан программистами, которые желали использовать магические числа, целочисленные константы для однозначной идентификации ресурса или данных. Используя шестнадцатеричную систему, состоящую из десятичных цифр от 0 до 9 и латинских букв от A до F (0123456789ABCDEF), стало возможно создавать небольшие слова, в которых цифра «0» обозначает букву «O», «1» обозначает буквы «I» или «L», «5» обозначает «S», «7» обозначает «T», и «6» или «9» обозначает «G» или «g» соответственно. Такие цифры, как 2 или 8 могут использоваться так же, как они используются в Leet или ребусах; например, слово «defecate» может быть представлено в виде DEFECA7E или же DEFEC8.

Содержание

Известные магические числа

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

  • 0x8BADF00D («ate bad food», рус. ел плохую пищу) используется Apple в отчётах об ошибках iOS для обозначения ситуации, когда приложение слишком долго либо запускается, либо завершается, либо отвечает на события системы.[1]
  • 0xABADBABE («a bad babe», рус. плохая девочка) используется Apple в качестве магического числа для «Boot Zero Block».[источник не указан 777 дней]
  • 0x1BADB002 («I bad boot»[источник не указан 777 дней], рус. плохая загрузка) — магическое число заголовка мультизагрузчика.[2]
  • 0xBAADF00D («bad food», рус. плохая еда) используется LocalAlloc(LMEM_FIXED) компании Microsoft для обозначения не инициализированной области памяти при использовании debug heap.[3]
  • 0xBADCAB1E («bad cable», рус. плохой кабель) — код ошибки, возвращаемый отладчику Microsoft eVC debugger в случае разрыва соединения.[источник не указан 777 дней]
  • 0xBADDCAFE («bad cafe», рус. плохое кафе) используется отладочным распределителем памяти 'watchmalloc' в OpenSolaris для обозначения выделенной, но незадействованной памяти.[источник не указан 777 дней]
  • 0xBEADFACE («bead face, face bead», рус. ) — шаблон, заполняющий всю неиспользуемую память в симуляторе микроконтроллера Motorola 68HCS12DP256, SimHC12.
  • 0xCAFEBABE («cafe babe», рус. ) is used by Mach-O to identify Universal object files, and by the Java programming language to identify Java bytecode class files.[4]
  • 0xCAFED00D («Cafe Dude», рус. ) используется в Java как магическое число для его pack200 сжатия.[источник не указан 777 дней]
  • 0xD15EA5E («disease», рус. ) флаг, указывающий на нормальную загрузку на Nintendo GameCube и Wii консолях.[5][6]
  • 0xDEADBABE («Dead Babe», рус. ) используется IBM Jikes RVM для контроля стека главного потока[7]
  • 0xDEADBEEF («dead beef», рус. мёртвая говядина) часто используется для обозначения аварийного завершения программы или зависания во встраиваемых устройствах. Используется в системах IBM RS/6000, Mac OS на 32-битных процессорах PowerPC и Commodore Amiga в качестве магического числа для отладки. В Solaris оно обозначает освобождённую память ядра. В OpenVMS на процессорах Alpha можно увидеть DEAD_BEEF, нажав клавиши CTRL+T. В консоли у DEC Alpha SRM есть фоновый процесс, который следит за ошибками в памяти, определяемый в PS как «BeefEater waiting on 0xdeadbeef».[8].
  • 0xDEADDEAD («dead dead», рус. мертвый мертвый) is the bug check (STOP) code displayed when invoking a Blue Screen of Death either by telling the kernel via the attached debugger, or by using a special keystroke combination.[9] This is usually seen by driver developers, as it is used to get a memory dump on Windows NT based systems. An alternative to 0xDEADDEAD is the bug check code 0x000000E2,[10] as they are both called MANUALLY_INITIATED_CRASH as seen on the Microsoft Developer Network.
  • 0xDEADFA11 («dead fall», рус. ) используется Apple в iOS при падениях системы, когда пользователь вынужден закрыть приложение.[1]
  • 0xDEFEC8ED («defecated», рус. чистый) — магическое число для дампов памяти OpenSolaris.[11]
  • 0xFACEFEED («face feed», рус. ) is used by Alpha servers running Windows NT. The Alpha Hardware Abstraction Layer (HAL) generates this error when it encounters a hardware failure.[12]
  • 0xFEE1DEAD («feel dead», рус. ) is used as a magic number in the Linux reboot system call.[13]
  • 0xFEEDCAFE («feed cafe», рус. ) is to 0xDEADBEEF, as «bar» is to «foo».
  • 0xFEEDFACE («feed face», рус. корми лицо) используется как сигнатура Mach-O бинарных файлов и как значение неверного указателя для 'watchmalloc' в OpenSolaris.[источник не указан 777 дней]
  • 0xC0FFEE («coffee», рус. кофе) используется в таких 24-битных DSP, как Motorola 56303.[источник не указан 777 дней]
  • 0xE011CFD0 — магическое число для файлов Microsoft Office. В little-endian оно читается как D0CF11E0, «docfile0».[14]
  • 0xFACE8D — цвет кожи в формате RGB.

Создание магических чисел

Указанные выше слова — всего лишь небольшая часть из сотен слов английского языка, содержащих только буквы «a», «b», «c», «d», «e», «f», «o», «i» и «s», поэтому программистам легко создавать собственные, такие как 0xD15EA5ED или 0xBED51DE5. As such, it is useful to observe a few patterns in the classic hexspeak constants given above. These constants all use the full width of the word (in this case 32-bit), and none begin with «1» or «5». This choice means that if the word is interpreted as an integer, it is a (usually large) negative integer. For example, 0xBAADF00D is −1163005939, a large negative integer that is unlikely to arise in many programs. Microsoft’s 0xBAADF00D is also a good value to catch access to uninitialised memory for another reason—ending the word with the «1», «5», «b», «d», or «f» ensures that the constant is an odd number, which generates an unaligned pointer exception on many processor architectures if the constant is interpreted as a pointer value.

Альтернативные буквы

  • В языке программирования Ada шестнадцатеричные числа заключены в «16#» и «#». Например: «16#Ada_Ada_Ada_Ada#».
  • В языке программирования C для обозначения шестнадцатеричных чисел используется префикс «0x». При чтении слов он обычно игнорируется.
  • В ассемблере 6502 шестнадцатеричные числа обозначены префиксом «$». Это позволяет использовать слова, начинающиеся на «S», например $EED («seed»).
  • В Ассемблере с Intel-синтаксисом шестнадцатеричные числа имеют окончание «h». Например: FEEDADEADF15h («feed a dead fish» — «корми мёртвую рыбу»). Заметим, что числа в такой записи не могут начинаться буквой, дабы компилятор не путал их с переменными, поэтому в начале вводится ноль. Так число «FEEDADEADF15h» должно быть записано как «0FEEDADEADF15h».

См. также

Ссылки

  1. 1 2 Technical Note TN2151: Understanding and Analyzing iPhone OS Application Crash Reports. Архивировано из первоисточника 2 июля 2012.
  2. Multiboot specifications. Архивировано из первоисточника 2 июля 2012.
  3. Win32 Debug CRT Heap Internals. Архивировано из первоисточника 2 июля 2012.
  4. Why Cafebabe. Artima.com. Архивировано из первоисточника 2 июля 2012. Проверено 1 октября 2009.
  5. Yet Another Gamecube Documentation: Dolphin-OS Globals. Архивировано из первоисточника 2 июля 2012.
  6. Wiibrew: Memory Map. Архивировано из первоисточника 2 июля 2012.
  7. DEADBABE sanity check. Архивировано из первоисточника 2 июля 2012. Проверено 1 октября 2009.
  8. Jargon File entry for DEADBEEF. Catb.org. Архивировано из первоисточника 2 июля 2012. Проверено 1 октября 2009.
  9. Bug Check 0xDEADDEAD: MANUALLY_INITIATED_CRASH, MSDN. msdn.microsoft.com (1 октября 2009). Архивировано из первоисточника 2 июля 2012. Проверено 13 октября 2009.
  10. Bug Check 0xE2: MANUALLY_INITIATED_CRASH, MSDN. msdn.microsoft.com (1 октября 2009). Архивировано из первоисточника 2 июля 2012. Проверено 13 октября 2009.
  11. Opensolaris header line 48 for 0xDEFEC8ED. Cvs.opensolaris.org. Архивировано из первоисточника 2 июля 2012. Проверено 1 октября 2009.
  12. Technet article for 0xFACEFEED. Support.microsoft.com (1 ноября 2006). Архивировано из первоисточника 2 июля 2012. Проверено 1 октября 2009.
  13. include/linux/reboot.h. Архивировано из первоисточника 2 июля 2012.
  14. Documents That Are Supported by the Office Filter. Архивировано из первоисточника 2 июля 2012.

Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Hexspeak" в других словарях:

  • Hexspeak — (von hexadezimal und engl. to speak = sprechen) nennt man Zahlen in hexadezimaler Notation, die auch als Wörter der englischen Sprache gelesen werden können, beispielsweise lautet die Dezimalzahl 57005 in hexadezimaler Darstellung DEAD (dead –… …   Deutsch Wikipedia

  • Hexspeak — Hexspeak, like leetspeak, is a novelty form of variant English spelling. Hexspeak was created by programmers who wanted a magic number, a clear and unique identifier with which to mark memory or data. Using hexadecimal notation, which includes… …   Wikipedia

  • 0xDEADBEEF — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Eine Magische Zahl (engl. magic number) ist in der Programmierung… …   Deutsch Wikipedia

  • Magic-Byte — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Eine Magische Zahl (engl. magic number) ist in der Programmierung… …   Deutsch Wikipedia

  • Magic Byte — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Eine Magische Zahl (engl. magic number) ist in der Programmierung… …   Deutsch Wikipedia

  • Nombre magique (programmation) — Pour les articles homonymes, voir Nombre magique (homonymie). En programmation informatique, le terme magic number (en français « nombre magique ») peut référer à : une constante numérique ou un ensemble de caractères utilisé pour… …   Wikipédia en Français

  • Hexadecimal — In mathematics and computer science, hexadecimal (also base num|16 , hexa, or hex) is a numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0 ndash;9 to represent values zero to nine, and A , B ,… …   Wikipedia

  • Magic number (programming) — For other uses of the term, see Magic number (disambiguation). In computer programming, the term magic number has multiple meanings. It could refer to one or more of the following: A constant numerical or text value used to identify a file format …   Wikipedia

  • 0x — Hexadezimalziffern, binär und dezimal: Hex. Dualsystem Dez …   Deutsch Wikipedia

  • 1337-5P34K — Dieser Artikel oder Abschnitt bedarf einer Überarbeitung. Näheres ist auf der Diskussionsseite angegeben. Hilf mit, ihn zu verbessern, und entferne anschließend diese Markierung. Leetspeak [ˈliːtspiːk] (auch Leetspeek; von engl. elite, „Elite“)… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»