说明:如果可能,将这些十进制数转换为5位二进制补码形式。如果不可能,请解释为什么会这样。
(16)base 10
根据在线转换器:
据我了解,
如果小数为正:
如果小数为负:
由于16是正数,我只是通过重复除法产生(10000)基数2将其转换为二进制。
我不再填充0,因为它已经是5位(包含5位数)。
有人可以向我解释为什么在线转换器会返回错误(我也坚信这也是正确答案)?
答案 0 :(得分:3)
使用5位,您可以表示最多2 ^ 5个不同的数字,因为您需要负数和正数,范围是-16到+15。
所以你得到错误,因为16超出了5位的范围。更改为6位,它应该工作
答案 1 :(得分:0)
您需要6位来表示+16,因为值10000表示-16。
可视化的最佳方式是 -
00000-0
00001-1
00010-2
....
01111-15
10000 - ( - )16
10001 - ( - )15
....
尝试取2的2的补码,你应该得到二进制值16