Hexspeak16進制魔術數字)是一種類似Leet的英文單詞轉寫形式。

起源和寫法

編輯

Hexspeak最早是程式設計師用來清晰獨特地標記記憶體資料的一些魔術數字,使用以0-9與A-F構成的16進制數表示一些簡單的英文單詞。Hexspeak的轉寫規則為:數字「0」表示字母「O」,「1」表示「I」或「L」,「5」表示「S」,「7」表示「T」,「6」、「9」則各自表示「G」與「g」,其它的數字則可利用畫謎Leet的規則來借代字母,例如「defecate」就可用「DEFECA7E」或「DEFEC8」來表示。

較有名的魔術數

編輯

16進制魔術數在許多處理器作業系統除錯工具中都得到應用,且尤常作為測試參數使用。

  • 0x0000000FF1CE是微軟Office組件產品代碼的最後一部分,可於註冊表的HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall的鍵值中尋得。
  • 0x00BAB10C(oo-ba-block)在ZFS的uberblock里使用。
  • 0x1BADB002(「I bad boot」)為多重引導(Multiboot Specification)標頭。[1]
  • 0x8BADF00D(「ate bad food」)為iOS應用程式崩潰報告中的超時英語Timeout (computing)標識符,一般在程序運行、終止與響應時停滯太久時出現。[2]
  • 0xBAADF00D(「bad food」)在微軟的LocalAlloc(LMEM_FIXED)函數中使用,用以在已啟用調試堆的情況下,標識未初始化的分配堆記憶體。[3]
  • 0xCAFED00D(「Cafe Dude」)在Java中用於識別Pack200壓縮格式。[5]
  • 0xDEADFA11(「dead fall」)為iOS應用程式崩潰報告中的「強制終止應用程式」的標識符。[2]
  • 0xE011CFD0在微軟Office文件中使用,小端序下表示為D0CF11E0,也即「docfile0」。[13]
  • 0xFACEFEED(「face feed」)在運行Windows NT的Alpha伺服器上使用,也即當出現硬體錯誤時,Alpha的硬體抽象層就會產生這一錯誤信號。[14]
  • 0xFEE1DEAD(「feel dead」)是Linux重啟系統呼叫中使用的魔術數。[15]
  • C15C:0D06:F00D(cisco dog food)於世界IPv6日在www.cisco.com的IPv6地址中使用。「Dog food」指的就是就是Cisco在IPv6上「eating its own dog food」(也即用自家的設備)的做法。

不同情況下的區別

編輯
  • Ada語言中,16進制數帶有「16#」的前綴與「#」的後綴,例如「16#Ada_Ada_Ada_Ada#」。
  • C語言中,16進制數用「0x」前綴標識。
  • Intel格式的匯編語言中,16進制數用「h」後綴標識,且當開頭數字為A-F時必須加「0」為前綴,例如0FEEDADEADF15h(FEED A DEAD FISH)。
  • Pascal語言MOS 6502使用的匯編語言中,16進制數用「$」前綴標識,也即以S開頭的詞語也可以用16進制數表示,比如$EED(即SEED)。

參見

編輯

註釋

編輯
  1. ^ Multiboot specifications. [2011-09-04]. (原始內容存檔於2012-07-02). 
  2. ^ 2.0 2.1 Technical Note TN2151: Understanding and Analyzing iPhone OS Application Crash Reports. [2011-09-04]. (原始內容存檔於2012-07-02). 
  3. ^ Win32 Debug CRT Heap Internals. [2011-09-04]. (原始內容存檔於2012-07-02). 
  4. ^ Why Cafebabe. Artima.com. [2009-10-01]. (原始內容存檔於2012-07-02). 
  5. ^ Pack200: A Packed Class Deployment Format For Java Applications. [2010-11-03]. 
  6. ^ Yet Another Gamecube Documentation: Dolphin-OS Globals. [2011-09-05]. (原始內容存檔於2012-07-02). 
  7. ^ Wiibrew: Memory Map. [2011-09-05]. (原始內容存檔於2012-07-02). 
  8. ^ DEADBABE sanity check. [2009-10-01]. (原始內容存檔於2012-07-02). 
  9. ^ Jargon File entry for DEADBEEF. Catb.org. [2009-10-01]. (原始內容存檔於2012-07-02). 
  10. ^ Bug Check 0xDEADDEAD: MANUALLY_INITIATED_CRASH, MSDN. msdn.microsoft.com. 2009-10-01 [2009-10-13]. (原始內容存檔於2009-10-02). 
  11. ^ Bug Check 0xE2: MANUALLY_INITIATED_CRASH, MSDN. msdn.microsoft.com. 2009-10-01 [2009-10-13]. (原始內容存檔於2009-07-31). 
  12. ^ Opensolaris header line 45 for 0xDEFEC8ED. src.opensolaris.org. [2011-07-12]. (原始內容存檔於2011-09-29). 
  13. ^ Documents That Are Supported by the Office Filter. [2011-09-04]. (原始內容存檔於2012-07-02). 
  14. ^ Technet article for 0xFACEFEED. Support.microsoft.com. 2006-11-01 [2009-10-01]. (原始內容存檔於2012-07-02). 
  15. ^ include/linux/reboot.h. (原始內容存檔於2012-07-02).