十六进制 Hex、0x、Hexadecimal
用 0-9 和 A-F 共十六个符号、逢十六进一,一位顶四位二进制。
十六进制是基数为 16 的记数法,用 0 到 9 再加上 A 到 F 共十六个符号,数满十六就进一位。数字不够用,就借字母来补:A 到 F 依次代表 10 到 15。为了和别的进制区分,十六进制数常在前面加 0x,比如 0xFF。
它最大的用处是给又长又乱的二进制做速记。因为 16 正好是 2 的四次方,一个十六进制位恰好顶得上四位二进制,二进制数按每四位一组就能直接换成十六进制,写起来短很多,也不容易看花眼。所以程序员看内存、写颜色、调硬件寄存器时几乎离不开它。
生活里最常见的十六进制是网页颜色,写成井号加六位,如 #FF0000,每两位分别表示红、绿、蓝的深浅,FF 是满值 255,所以这个是纯红色。换算到十进制的办法是每位乘以 16 的对应次方再相加,比如 FF 就是 15×16 加 15,等于 255。
常见误区是把里面的字母当成别的含义,其实 A-F 只是 10-15 的符号;还有人忽略 0x 前缀,把十六进制数误读成十进制,比如把 0x10 当成十,其实它是十进制的 16。
关于十六进制的常见问答
十六进制里的字母 A 到 F 代表什么?代表 10 到 15。因为十六进制需要十六个符号,0 到 9 只有十个不够用,就借 A、B、C、D、E、F 补上后面六个。
为什么程序员爱用十六进制?因为一位十六进制正好等于四位二进制,能把长长的二进制串简写得又短又整齐,看内存、调寄存器、写颜色值都方便。
颜色值 #FF0000 是什么颜色?这是十六进制颜色,FF、00、00 分别是红、绿、蓝分量,红为满值 255、绿蓝都为 0,所以显示纯红色。