my-server
← Wiki

Hexspeak

Hexspeak is a novelty form of variant English spelling using the hexadecimal digits. Created by programmers as memorable magic numbers, hexspeak words can serve as a clear and unique identifier with which to mark memory or data.

Hexadecimal notation represents numbers using the 16 digits <code>0123456789ABCDEF</code>. Using only the letters <code>ABCDEF</code> it is possible to spell several words. Further words can be made by treating some of the decimal numbers as letters – the digit "<code>0</code>" can represent the letter "O", and "<code>1</code>" can represent the letters "I" or "L". Less commonly, "<code>5</code>" can represent "S", "<code>7</code>" represent "T", "<code>12</code>" represent "R" and "<code>6</code>" or "<code>9</code>" can represent "G" or "g", respectively. Numbers such as <code>2</code>, <code>4</code> or <code>8</code> can be used in a manner similar to leet or rebuses; e.g. the word "defecate" can be expressed either as <code>DEFECA7E</code> or <code>DEFEC8</code>.

Notable magic numbers

Many computer processors, operating systems, and debuggers make use of magic numbers, especially as a magic debug value.

Alternative letters

Many computer languages require that a hexadecimal number be marked with a prefix or suffix (or both) to identify it as a number. Sometimes the prefix or suffix is used as part of the word.

  • The C programming language uses the "0x" prefix to indicate a hexadecimal number, but the "0x" is usually ignored when people read such values as words. C also allows the suffix L to declare an integer as <code>long</code>, or LL to declare it as <code>long long</code>, making it possible to write "0xDEADCELL" (dead cell). In either case a U may also appear in the suffix to declare the integer as <code>unsigned</code>, making it possible to write "0xFEEDBULL" (feed bull).
  • In the (non-Unix) Intel assembly language, hexadecimal numbers are denoted by a "h" suffix, making it possible to write "0beach" (beach). Note that numbers in this notation that begin with a letter must be prefixed with a zero to distinguish them from variable names. A Unix-style assembler uses C language convention instead (but non-Unix-style assemblers are also available on x86 Unix-type OSes).
  • Visual Basic and all previous Microsoft BASICs such as QuickBasic, GWBasic, BASICA and ColorBASIC, use a &H prefix, for example, "&HEADED" (headed) and "&HADC0FFEE" (had coffee).
  • In Pascal and several assembly languages (6502, 6809,...), hexadecimal numbers are denoted by a "$" prefix. This allows for words starting with the letter "S", for example "$EED" (seed).
  • In B3-34 programmable calculators, an alternative hexadecimal alphabet was used, where the symbols "−", "L", "C", "Г", "E", and "&nbsp;" (space) were used instead of Latin letters. Using these, it was possible to display messages like "EГГ0Г" (error).

PlayStation 3 RSX

In reverse engineering aspects of the Sony PlayStation 3, a number of hexspeak codes were found to either trigger, affect or were present in aspects of communicating to and through the PlayStation 3 Hypervisor in communication to its GPU, the RSX Reality Synthesizer.

These projects were largely born out of PS3 homebrew operating on the PS3's OtherOS which allowed Linux to be installed, initially with extremely limited GPU access.

See also

References

External links