首页 文章

将十进制转换为二进制补码

提问于
浏览
0

Instructions: 如果可能,将这些十进制数转换为5位二进制补码形式 . 如果不可能,解释为什么会这样 .

(16)基地10

根据在线转换器:

据我所知,

如果小数是正数:

  • 步骤1:将幅度转换为二进制 .

  • 步骤2:将0填充到所需的bitsize .

如果小数为负数:

  • 步骤1:将幅度转换为二进制 .

  • 步骤2:将0填充到所需的bitsize .

  • 步骤3:反转位以实现1的补码 .

  • 步骤4:添加1以实现2的补码 .

由于16是正数,我只是通过重复除法产生(10000)基数2将其转换为二进制 .

我不再填充0,因为它已经是5位(包含5位数) .

有人可以向我解释为什么在线转换器会返回一个错误(我也坚信这是正确答案)?

2 回答

  • 0

    使用5位,您可以表示最多2 ^ 5个不同的数字,因为您需要负数和正数,范围是-16到15 .

    所以你得到错误,因为16超出了5位的范围 . 更改为6位,它应该工作

  • 3

    您需要6位来表示16,因为值10000表示-16 .

    可视化的最佳方式是 -
    00000-0
    00001-1
    00010-2
    ....
    01111-15
    10000 - ( - )16
    10001 - ( - )15
    ....
    尝试使用10000的2的补码,你应该得到二进制值16

相关问题