为什么十六进制大多使用 0x 作为前导符
CPL 语言(1966)可能是前导符的万物起源,它支持二、八和十进制整数。其中二和八进制需要前导符:底数以及空格,比如
B 语言(1972)使用 0 作为八进制的前导符,比如
C 语言一开始,也延续了 B 语言的设计,没有十六进制。直到 1978 才支持十六进制,并使用了 0x 作为前导符,比如
所以 0x 前导符现在这么流行,主要还是 C 语言足够流行吧。比如 Intel 的汇编语言与 Modula-2,使用后导符
虽然 0x 是主流,但也有一些其他常用的十六进制前导符。比如网页发扬的十六进制颜色
附言:Unicode 也是十六进制,不过常用的 U+ 前缀,根据 Jim DeLaHunt 的考据与回忆,
参考了 Russ Cox 和 Robert Griesemer 的考据 | #考据
CPL 语言(1966)可能是前导符的万物起源,它支持二、八和十进制整数。其中二和八进制需要前导符:底数以及空格,比如
8 36
、2 1000000
。B 语言(1972)使用 0 作为八进制的前导符,比如
036
,但移除了十六进制支持。C 语言一开始,也延续了 B 语言的设计,没有十六进制。直到 1978 才支持十六进制,并使用了 0x 作为前导符,比如
0x12ab
。由于没有设计者的备忘录,所以有人猜测 0 可能是延续 B 语言的设计,而 x 是 hex(十六进制)的缩写,因为读音类似。所以 0x 前导符现在这么流行,主要还是 C 语言足够流行吧。比如 Intel 的汇编语言与 Modula-2,使用后导符
h
,比如 FFh
、05A3H
,这种写法就没有被其他语言吸收。(后导符也不利于人类识别)虽然 0x 是主流,但也有一些其他常用的十六进制前导符。比如网页发扬的十六进制颜色
#66ccff
,这被认为 延续了开源图形化界面 X11(X Window System)的颜色写法习,而 X11 的写法源自更早的一些汇编软件,算是另一支传承吧。附言:Unicode 也是十六进制,不过常用的 U+ 前缀,根据 Jim DeLaHunt 的考据与回忆,
U+
其实是事实标准。当时许多人使用 U+12EF
来表示 Unicode,之后 Unicode 标准才使用这种写法。参考了 Russ Cox 和 Robert Griesemer 的考据 | #考据