学习计算机系统基础(自学笔记)

计算机中数值如何转换,机器数的表示。

如果是负数,扩展到高位时需要在前面补1,如果是正数,则扩展0。不是很明白

补码:反码+1。{1_1111111}编码就不再表示-0,而变成了-1。顺着推,最小的编码{1_0000000}就是-128

正数补码保持原码不变:3={0_0000011}

负数先求反码,然后再加1:-5=[1_1111010]+1={1_1111011}

3+{-5}={-2}的计算过程为:

{0_0000011}+{1_1111011}={1111 1110}(补码)

-->先减1再取反得原码,符号位不变:1111 1101-->1000 0010 = -2

两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。(和模运算有关吗)

在某个数值范围内的加法运算可在MOD值的介入下转换为减法运算,当然也可由减法运算转换为加法运算。这因此也正好引出来计算机的补码。

假如在8位计算机中,模值为 2^8 (代表2的8次幂)

(1)若 X = + 101001 为正数,补0到8位后则表示 00101001 请计算X的补码。而我们知道,在计算机中,正数的补码为原码,故 【X】补 =2^8 +00101001
转换为二进制计算则为 100000000+00101001 = 1 0 0101001 ,最高为1 溢出,则最终的结果值为 0 0101001 ,其中高位0为符号位。

(2)若 X = - 101001 则【X】补 =2^8 -00101001 = 1 00000000 - 00101001 根据二进制减法计算得出结果为 0 11010111 这样高位0溢出得到的结果即为 11010111,此时最高为为符号位。我们都知道计算一个负数的补码,首先是符号位不变,其他位取反,然后再加1。下面我们按照正常计算补码的步骤进行计算:
X = - 101001 由于为负数,所以符号为 为1 则X为 10101001 取反后 为 1 1010110 ,再进行加1 为11010111 由结果可以得出以下结论:

在n位计算机系统中【X】补 =2^n+X = 模 + X 。

采用反码进行计算,最高位产生进位,结果+1

3 + (-2)

= 0000 0011(原) + 1000 0010(原)

= 0000 0011(反) + 1111 1101(反)

= 1 0000 0000(反) -- 最高位产生进位,结果+1

= 0000 0001(反) = 0000 0001(原)

= 1

 递归和循环的比较

 

addl 0(%edx这里的0是什么含义)?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值