【问题标题】:Number systems: binary vs hex数字系统:二进制与十六进制
【发布时间】:2020-01-10 13:49:52
【问题描述】:

我正在审查数字系统并在它们之间进行转换。

我认为十六进制值使用的位数比二进制少,这是有道理的,但最后不是将十六进制值存储为位吗?这似乎最终破坏了目的。

【问题讨论】:

  • “十六进制值使用的位数少于二进制”——这没有任何意义。十六进制值使用的位数不比二进制少。他们根本不使用任何位。他们使用十六进制。 “位”字面意思表示“二进制数字”(这当然是用词不当,因为“数字”本身来自拉丁词中的10),所以它只适用于二进制。

标签: binary numbers hex base


【解决方案1】:

在几乎所有情况下,计算机使用的所有数据最终都以二进制形式表示。计算机仅将二进制数据转换为十进制或十六进制的字符数字表示。十六进制对十进制没有空间效率。

十六进制优先于十进制,因为它是 2 的幂,它使用所有 10 个十进制数字加上 6 个字母。它通过将每个十六进制数字视为一系列四个二进制数字,有效地将二进制表达式压缩为更易读的形式。这不能用于十进制。

比较一下:哪个更具可读性?

  • FEFF 十六进制
  • 1111111011111111? 二进制

【讨论】:

    【解决方案2】:

    计算机操作二进制数据,以二进制形式表示。将二进制映射到base 16(hex)比base 10(decimal)容易,在十六进制转换中,每组四位数字直接转换为十六进制。

    十六进制的优势最终是为了映射目的。

    【讨论】:

      【解决方案3】:

      十六进制数字比二进制字符串更具可读性和紧凑性,因此更易于人类使用。因此,例如,当程序员创建或维护包含网站颜色的配置文件或包含数字常量的常量文件时,使用十六进制数字比使用长二进制字符串更容易。

      例如,FF0000(红色)比 11111111 更简洁易读, 00000000, 00000000 二进制红色。

      现在这里也可以使用十进制而不是十六进制,但它比十六进制更节省空间,因为十六进制字符串可以表示比相同长度的十进制字符串更大的数字范围。

      例如FFFF,4位的最大十六进制数相等 到远大于 9999 的十进制数 65535,最大 4位十进制数。

      当然,十六进制数字 (0-9, A-F) 使用 4 位二进制字符串的所有 16 种可能组合,而二进制数字 (0-9) 使用 16 种组合中的 10 种。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-30
        • 2011-10-11
        • 2015-04-19
        • 1970-01-01
        • 2014-03-11
        • 1970-01-01
        • 2011-02-09
        • 1970-01-01
        相关资源
        最近更新 更多