什么是十六进制?

Jus*_*cha 13 terminology hexadecimal

什么是十六进制系统,为什么它在计算中使用如此之多?我知道计算机用0和1来存储数据,那我们怎么用十六进制呢?

Jus*_*cha 31

十六进制是一种在计算中非常常见的数字系统。您之前可能听说过二进制,它只有 1 和 0。

人类大多使用十进制(基数为 10)系统,其中我们有 10 个数字:

0、1、2、3、4、5、6、7、8 和 9

但是,计算机不使用十进制系统运行。它们具有二进制状态(某些东西要么是真要么是假),因此以 2 为基数(二进制数通常以 0b 为前缀)运行,唯一的数字是 0 和 1。

在早期,使用八进制(或基数 8)。这很好,因为基数 8 中的“10”是二进制的“0b1000”(十进制的 10 是二进制的 1010)。八进制在写数字时通常以“0o”为前缀(但在大多数编程语言中只以“0”为前缀)。它被称为基数 8,因为我们有八个数字。

八进制今天仍在使用,主要是在 Unix 和 Linux 中设置权限

随着时间的推移,我们需要一种更简单的方法来表示更大的数字,因为计算能力和空间正在迅速增加。它成为使用十六进制或基数 16的标准,因为 16 和 8 一样是 2 的幂,这使得逐位转换变得容易(请参阅此注释。因为有 16 个数字,所以使用字母表示其他数字。此外,十六进制通常以 0x 为前缀。

十六进制数也很有用,因为十六进制数是 4 位(1 个八进制数可以表示 2),因此一个字节中有两个数字。在大多数十六进制编辑器中,这就是一个字节的表示方式。

数数

在基数 10 中,我们有 10 个数字。9点过后,我们该怎么办?我们没有数字了。我们在原始数字的左侧创建一个“十位”,将其设为 1,最右侧变为 0。同样的事情也发生在十六进制中:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, 11, 等等

直到我们到达 0x1F,然后重复该过程直到 0xFF(十进制 255),然后我们得到 0x100。可在此处找到有关计数的更多信息。

下面的图表显示了十进制、十六进制、八进制和二进制之间的转换: 十六进制转换表

  • 主要好处是,因为 16 是 2 的幂,所以您可以进行逐位转换。 (21认同)
  • Arrg。每个基数都是 10 基!http://stale.soup.io/post/114652207/every-base-is-base-10 (3认同)
  • 请注意,对于八进制数,许多语言使用“0”前缀而不是“0o”。 (2认同)
  • 您关于 16 是 2 的 *倍数 * 的注释是从 TRiG 的评论中错误复制的。作为倍数不是相关关系。 (2认同)
  • @justcool393,可能值得一提的是,您所谓的“基数 10”的名称实际上是“十进制”。这可能有助于明确基数 8(八进制)、基数 10(十进制)和基数 16(十六进制)之间的关系。 (2认同)