计算机组成原理机器码怎么求,计算机组成原理--数据格式与机器码

数据格式

计算机中使用的数据可分成两大类:

符号数据:非数字符号的表示(ASCII、汉字、图形等)

数值数据:数字数据的表示方式(定点、浮点)

计算机数字和字符的表示方法应有利于数据的存储、加工(处理)、传送;

编码:用少量、简单的基本符号,选择合适的规则表示尽量多的信息,同时利于信息处理(速度、方便)

进制转换

这个一般都不是问题,但二进制小数转十进制我忘了,所以在这复习一下

例如将0.11101转为十进制那么应该这样做:0*2^(0)+ 1*2^(-1)+1*2^(-2)+1*2^(-3)+ 0*2^(-4)+1*2^(-5)

计算机在数据、文字的表示方式时,应该考虑一下几个因素:

表示的数据类型(符号、小数点、数值)

数值的范围

数值精度

存储、处理、传送的硬件代价

是否有利于软件的移植等...

定点表示

所有数据的小数点位置固定不变,理论上位置可以任意,但实际上将数据表示有两种方法(小数点位置固定-定点表示法/定点格式):纯小数和纯整数,然后又分带符号不带符号

定点纯小数

e0ad8d651b4064b7997ce3c0e81a4f12.png

bebedb7327e155ffb1ee72b6746b86c6.png

定点纯整数

7bcac72dc2fc9a023e707befe33b1907.png

定点表示法的特点:

定点数表示数的范围受字长限制,表示数的范围有限;

定点表示的精度有限

机器中,常用定点纯整数表示;

因为要表示实数(包括小数和整数),所以引入浮点数

浮点表示:小数点位置随阶码不同而浮动

6747a6269c94c17c9bbd705ba63b8bdc.png

机器中表示

9a47b5be396b2139aad10a5eb5bbab5f.png

IEEE754标准(规定了浮点数的表示格式,运算规则等)规则规定了单精度(32)和双精度(64)的基本格式,规则中,尾数用原码,指数用移码(便于对阶和比较)

IEEE754标准

基数R=2,基数固定,采用隐含方式来表示它。

32位的浮点数:

S数的符号位,1位,在最高位,“0”表示正数,“1”表示负数。

M是尾数, 23位,在低位部分,采用纯小数表示

E是阶码,8位,采用移码表示。移码比较大小方便。

规格化: 若不对浮点数的表示作出明确规定,同一个浮点数的表示就不是惟一的。

尾数域最左位(最高有效位)总是1, 故这一位经常不予存储,而认为隐藏在小数点的左边

采用这种方式时,将浮点数的指数真值e变成阶码E时,应将指数e加上一个固定的偏移值127(01111111),即E=e+127

E: 阶码位数,决定数据的范围,M: 尾数位数,决定数的精度

e159e32d07c780fd3dab2b710d682c6f.png

真值x为零表示:当阶码E为全0且尾数M也为全0时的值,结合符号位S为0或1,有正零和负零之分

真值x为无穷大表示:当阶码E为全1且尾数M为全0时,结合符号位S为0或1,也有+∞和-∞之分。

这样在32位浮点数表示中,要除去E用全0和全1(255)表示零和无穷大的特殊情况,指数的偏移值不选128(10000000),而选127(01111111)。对于规格化浮点数,E的范围变为1到254,真正的指数值e则为-126到+127。因此32位浮点数表示的绝对值的范围是10-38~1038(以10的幂表示)。

浮点数所表示的范围远比定点数大。一台计算机中究竟采用定点表示还是浮点表示,要根据计算机的使用条件来确定。一般在高档微机以上的计算机中同时采用定点、浮点表示,由使用者进行选择。而单片机中多采用定点表示

指数采用偏移值,其中单精度偏移值为127,双精度为1023,将浮点数的阶码值变成非负整数,便于浮点数的比较和排序

47f835dfd9cfe28c5fba99d177c79d3f.png

b1599a17a1bf566cc01c6b4c0bf791e0.png

机器数的特点

73c13bd4849fbfe618a2dec29cf9d319.png

原码:表示简单,运算复杂:符号位不参加运算,要设置加法、减法器,0的表示不唯一,不能直接判定是执行加法还是减法运算,分同号和异号

反码:表示相对原码复杂,运算相对原码简单:符号位参加运算, 只需要设置加法器,但符号位的进位位需要加到最低位,0的表示不唯一

补码:表示相对原码复杂,运算简单:只需设置加法器,0的表示唯一

移码(增码):

3f47ad64cb460a6d13fb5e58c0bcf7d2.png

2cf00a289a25448dfff57c48bd0e7b93.png

BCD码

表示一位十进制数的二进制码的每一位有确定的权。一般用8421码,其4个二进制码的权从高到低分别为8、4、2和1。用0000,0001,…,1001分别表示0,1,…,9,每个数位内部满足二进制规则,而数位之间满足十进制规则,故称这种编码为“以二进制编码的十进制(binary coded decimal,简称BCD)码”

在计算机内部实现BCD码算术运算,要对运算结果进行修正,对加法运算的修正规则是:

如果两个一位BCD码相加之和小于或等于(1001),即(9),不需要修正;如相加之和大于或等于(10),要进行加6修正,并向高位进位,进位可以在首次相加(例3.10③)或修正时产生

aab08fa5409efc2c143399757f2ca1b7.png

码值转换

b435fd08ac8a807491f575ae221040ac.png

e0d96e6310a165b2e5567e1aa22a9219.png

7d3fc6d7d156c023be0e2828f725de7e.png

补码是在“模”和“同余”的概念下导出的。

“模”是指一个计量系统的计量范围,即产生“溢出”的量。

5823c8f441a51a0f9ef3dbcfc25a9ca1.png

5-2=5+10 (MOD 12)

5+(-2)=5+10 (MOD 12)

-2=10 (MOD 12)

可以说:在模为12的情况下,-2的补码 就是10。 一个负数用其补码代替,同样可以得到正确的运算结果。

1、一个负数可用它的正补数来代替,而这个正数可以用模加上负数本身求得。

2、一个正数和一个负数互为补数时,它们绝对值之和即为模数。

进一步结论:

在计算机中,机器能表示的数据位数是一定的,其运算都是有模运算。如果是n位整数(不含符号位),其模为2n+1。如果是n位小数,其模为2。

若运算结果超出了计算机所能表示的数值范围,则只保留它的小于模的低n位的数值,超过n位的高位部分就自动舍弃了。

3f8e2f9ab89b2a7d20285470a42ba422.png

2913a68e5b51914008bf8713a3c52dad.png

补码性质:高位表明正负,正数补码,尾数与原码相同,范围-2n~2n-1(定点整数)

be6645e9855e010d1e1c1ae49ede5aa0.png

7f168d7336ed50421e82ce192290f81b.png

0d077d1d373dae93cbbd2ed31c3db3d4.png

由原码求补码的简便原则:除符号位以外,其余各位按位取反,从最低位开始遇到的第一个1及右边的各位保持不变

8b1952dc74bdc031bfbdd6a078c58e1c.png

由[X]补求[-X]补:连符号位一起各位求反,末位加1。

由[X]补求[X/2]补:将[X]补的符号位和数值位一起向右移动一次.符号位移走后保持原来的值不变.这称为“算术移位”,[X/4]补和[X/8]补同理

n+1位补码所能表示的数

31ea8ea7143f8f431b75b9ac4b690b5f.png

反码表示法

定义:正数的表示与原、补码相同,负数的反码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示,电路容易实现,触发器的输出有正负之分

9159e8586f98af185f9f95e3855fb68e.png

722f676bb7f3700c7c3376ff4489c88d.png

[x ]补=[x ]反+2^-n,反码表示有正0和负0之分

移码

b71d16e2fdfc4ddeb57f3e9c8187dfa7.png

特点:移码和补码尾数相同,符号位相反,范围:-2n~2n-1

性质: 若[X1]移>[X2]移,则有 X1>X2.

d6b136066569ab73ffbbae3a7fa3cd7a.png

e7d565c0daa821726b546e5ccac1bed0.png

ad01c3ee122a7d3928f1cac5885644fc.png

3b565766c3bdf0e114d7e137ade34879.png

56d70ce332f61cdef3d200dcf9940246.png

原码、补码、反码和移码的区别,可分三个区域:

ab8e35b282906795c0ade3e0c6ae5c5a.png

f7ebcb2bb38cbb7ef8102f48dc995131.png

ba831c8311c83678c967a9059c697d59.png

fd05b2a86b8baae51c709f87ed7941c2.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值