请问补码是什么10001101表示的十进度的真值是?

《计算机组成原理与汇编语言》習题

1. 计算机中为什么都采用二进制数而不采用十进制数?

2. 写出下列用原码或补码是什么表示的机器数的真值:

7. 将下列十进制数表示为8421BCD码:

8. 将下列8421BCD码表示为十进制数和二进制数:

Word文档免费下载:

(下载1-15页共15页)

楼上高手结果完全正确,我在VCΦTrace到的结果就是-65536但由此带来了很多疑问。

我刚看了一篇文章里面说所有原码、反码、补码是什么的转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码 

首先,我很奇怪src << 16后居然能从16位扩展到32位,我看谭浩强的教程上说左移操莋后超过位数的位是会截取掉的,也就是16位左移操作后应该还是16位,为什么这里会变成32位

如果按照谭的说法,怎么感觉src是16位的左移16位后,应该为0

可是我就更不懂了 

其二-65536是一个什么数?因为16位的二进制数如果是有符号位的,无论是原码还是补码是什么这个数都已經超过范围。 

唯一只有一种可能就是16位的数,左移16位值实际已经扩展到32位,扩展到32位 

扩展出来的数是什么码如果是补码是什么,取反+1的结果倒是和-65536的值相符 

那么也就是说,计算机中的数据用的还是补码是什么


正数没有什么好说的,原码反码补碼是什么皆是一样的;

只要是从补码是什么推原码,一律是取反加一,例如下面一个例子:

补码是什么—————————————————————-> 原码

下面以八位二进制进行举例:
补码是什么—————————————————————-> 原码

注意 :在OD中,寄存器中的值一般都是以補码是什么形式出现的.!!!!!
再加1,为,由于它是一个负数

小结:补推原:取反加1,添加符号位

与补码是什么推导原码有一点不同,
保持符号位不變,然后再取反加一
例子:已知)求其补码是什么 (加1)
(保持符号位不变,取反)——–>————–>(-1的补码是什么)

这里需要注意的是:如果将看成补码是什麼的话,那么进行上面的”补推原”操作,
也就是说补码是什么位的原码为-127
小结:原推补,保持符号位不变, 取反加1,


二进制与十六进制之间的转换:

我要回帖

更多关于 补码是什么 的文章

 

随机推荐