计算机组成第五章 中央处理器

一、无符号数与有符号数

在计算机中参与运算的有两种数,有符号数和无符号数

1.1 无符号数

计算机中的数放在寄存器中,通常称寄存器的位数为机器字长。无符号数就是寄存器中的每一位都可以存放数值。但如果是有符号数就要留出符号位以判断是正数还是负数。

例如机器字长若为16位,则无符号数范围:0~2^16 = 65536,有符号数范围:-(2^16))/2 ~(2^16)/2-1 = -32768~32767  (因为中间还有一个0占了正数的一个位置,所以到32767)

1.2 有符号数 

 1. 机器数与真值

我们平时说的-15,98,0都是真值,但是怎么让计算机知道一个数的正负呢,他只看得懂01看不懂正负号,因此我们用“0”表示“正”,用“1”表示“负”,这样的数就叫做机器数

 

 2.原码、补码、反码

(1)原码

x为真值,n为位数,用逗号将符号位和数值分开

正整数原码 = 0,x,小数:x

负整数原码 = 1,x,小数:1-x

(2)反码

正数的反码 = 原码

负数的反码 = 符号位不变,其余全部取反

(3)补码

正数补码 = 原码

负数补码 = 符号位不变,反码+1 

3.浮点表示

浮点数 =  符号位 + 阶码 + 尾数 

单精度:4字节 32位

双精度:8字节 64位 

 例:13/128转换成二进制定点数和浮点数,设浮点字长16位,阶码5位(含一位阶符),尾数11位(含1位数符)

1)首先把数字转换为二进制的科学计数法:

13/128 = 0.1015625 = 0.0001101000(B) = 0.1101000*2^(-11)

-11就是-3,因为是二进制

2)我们就找到了阶码-3,-3<0,所以阶符是1,即1 0011

3)尾数为1101000是正的,数符是0,即11010000000,

合起来就是1 0011 0 11010000000

所以在定点机中X[原] = X[补] = X[反] = 0.0001101000

浮点机中X[原] = 1 0011 0 11010000000 或 1,0011;0,11010000000

              X[反] = 1 1100 0  11010000000

              X[补] = 1 1101 0  11010000000 

注意:要根据符号位写补码与反码!!!!😀😀😀

4.定点运算 

4.1 移位运算 

1)左移:m<<n = m*2^n

整体左移,后面补0

16 = 11010(B),

16<<1 = 32,16<<2 = 64;

2)右移:m>>n = m/2^n

正数右移:左侧补0,负数右移左侧补1

46>>1 = 23,23>>1 = 12 

3)无符号右移:>>>

正数右移:左侧补0

负数右移:左侧补0

26>>>1 = 13;

4.2 补码加减法运算 

加减法其实就是正负数进行加的运算,所以一般都用补码进行计算。

 10+11 = 01(2+3=1):5%4

  11+11= 10(3+3=2):6%4

整数:所以其实丢掉前面那位就是取余2^(n+1)

小数:%2

4.3 溢出 

4.3.1用一位符号判断溢出

只有正数和正数、负数和负数才会溢出,所以当参加运算的两个数符号相同,结果符号又与运算数不同时记为溢出。

例:0,101+0,100=1,001 就是溢出 

-0.1000 + (-0.1000) = 1.1000 + 1.1000 = 11.0000,与参与运算的数符号位相同,所以无溢出

 

4.3.2 两位符号判断溢出 

 当两位符号位不同时表示溢出,否则不溢出

 

4.4 乘法运算

 

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值