【问题标题】:convert negative decimal number into HEX and HEX into decimal将负十进制数转换为十六进制和十六进制转换为十进制
【发布时间】:2014-11-13 19:50:00
【问题描述】:

我试图理解十进制和十六进制之间的转换! 根据这个工具decimal to hexadecimal converter---------------------------------> -130 是 FFFFFFFFFFFFFF7E !! 我想了解我们如何计算它以及我们如何计算从十六进制到十进制的转换!

任何帮助将不胜感激!非常感谢

【问题讨论】:

    标签: decimal hex


    【解决方案1】:

    看起来他们正在使用某种“互补符号”将负基 10 数字表示为十六进制(基数 16)数字。

    所以 -1 声音被表示为 FFFFFFFFFFFFFFE,和 -16 FFFFFFFFFFFFFFEF(尽管当我尝试某些 16 的幂时工具冻结了我)。

    (就像将它们表示为以 10 为底的 9999999999999998 和 9999999999999983 )。

    除了那个约定,您必须阅读有关数字系统的基本表示的内容才能理解一般情况。想想汽车里程表的类比。在基数 2(二进制)中,它在“2”处“翻转”,因此 1=1、2=10、3=11、4=100,依此类推。底数为 2 的“100”表示 1x2^2 + 0x2^1 + 0x2^0,或 4 + 0 + 0,或 0。

    对于您习惯的以 10 为底的数字,数字以 10 的幂而不是 2 的幂“翻转”。 ...,98,99, 100,..., 与 9x10^1 + 8*10^0, 9x10^1+9x10^0, 1x10^2 + 0x10^1+0x10^0 的序列相同。

    要以您选择的任何基数表示给定数字,数字(从左到右)表示该数的基数的倍数。

    对于十六进制,'1 的位置 (1,2,...,C,D,E,F) 是 1 到 15,然后当你击中 16 的第一个幂时,它会变为表示为' 10',或 1x16^1 + 0x16^0。 '16s' 点现在有一个 1。十六进制的 100 在 '256s'(或 16^2)点中将有 1,而不是你习惯的 1s、10s、100s 以十进制为基数 10。

    要返回以 10 为底,乘以 16 的幂。所以 CCD1 将是 12*16^3 + 12*16^2 + 13*16^1+ 1*16^0。

    【讨论】: