将十进制转换为2的补码

时间:2015-02-05 01:26:46

标签: binary binary-data data-conversion

我正在努力将十进制数转换为2的补码二进制数。 我理解这个概念;

  1. 将数字转换为十六进制(Base 16)
  2. 将结果转换为二进制(填充为8位数)
  3. 反转所有位并添加1
  4. 所以我一直试图转换92(基数10)

    92 -> Hex = 5c
    5C == 5 12 -> Binary = 01011100
    Inverting = 10100011
               +       1
               =10100100
    

    但我用来查看答案的在线转换器说:01011100 我做错了什么?我知道最重要的位应该是0,因为数字是正数。但除此之外,我很困惑。

    更新

    这是因为正数不需要切换为符号幅度吗? 因此,在做2的补码之前和之后,数字保持不变?

    意思是,我得到的答案是 实际上 负面解释; -92

1 个答案:

答案 0 :(得分:2)

仅反转它并在您尝试表示负数时添加1,正数用正常二进制表示。 (你的正数范围越小)。