机器数的编码方法研究

2022-09-11 版权声明 我要投稿

一、机器数和真值

机器数是数字在计算机中的二进制表示形式,用机器数表示有符号的数字时,数字的符号也用二进制数表示,而数字的大小是由机器字长决定的,超过字长表示范围的数字用机器数表示时会发生溢出。我们把一个数在机器内的表示形式称为机器数,而这个数字本身就是该机器数的真值。

二、原码、反码和补码的计算方法

(1)原码分为符号位和数值位两部分组成,其中最高位为符号位,在符号位中0表示正数,1表示负数,其余位为数值位,数值位上的数值等于真值的绝对值的二进制数。例如在字长为16位的计算机中,+3的原码为[0000 0000 00000011],-3的原码为[1000 0000 0000 0011]。

(2)反码的求解方法分为正数和负数两种方法求解。其中正数的反码等于正数的原码,负数的反码等于负数的原码的数值位按位取反(0变1,1变0),最高位符号位不变。例如在字长为16位的计算机中,+3的反码为[0000 0000 00000011],-3的反码为[1111 1111 1111 1100]。

(3)补码的求解方法分为正数和负数两种方法求解,其中正数的补码等于正数的原码,负数的补码等于负数的反码+1,符号位参加运算,例如在字长为16位的计算机中,+3的补码为[0000 0000 0000 0011],-3的补码为[1111 11111111 1101]。

三、补码的归一化

数据在计算机内进行存储和计算时,为了区分正数和负数,即最高位的值就需要设计更复杂的电路,虽然原码是最简单和直观的数据编码方式,但是如果使用原码进行存储和计算时符号位不能参加计算,例如在16位字长的计算机中,+0的原码为[0000 0000 0000 0000],而-0的原码为[1000 0000 00000000],但是真值+0=-0,这样如果使用原码进行存储和计算时,+0和-0不能统一使用,就会让计算机产生二义性,同理+0的反码为[0000 0000 0000 0000],-0的反码为[1111 11111111 1111],如果用反码进行存储和计算时+0和-0也不能统一使用,也会让计算机产生二义性。只有使用补码存储和计算时,+0和-0的补码都是[0000 0000 0000 0000],+0和-0在存储和运算时达到统一,同时符号位可以参加运算,还可以多存储一个数据。

四、补码的运算和存储

计算机内存中数据采用补码形式进行存储和计算,假如我们要进行减法运算时,例如3-4,这时我们可以把减法运算当做加法运算来处理,即我们只需计算3+(-4)即可,3的补码为[0000 0000 0000 0011],-4的补码为[1111 11111111 1100],3的补码与-4的补码进行加法计算得:[00000000 0000 0011]+[1111 1111 1111 1100]=[1111 1111 11111111],而补码[1111 1111 1111 1111]的真值为-1,这样我们就可以得出结论,用补码对数据进行计算时完全可以得到与使用真值计算相同的结果。即通过使用补码运算可以将减法运算转换为加法运算来完成。

摘要:我们在学习计算机程序设计语言时,一定要理解计算机内信息的表示方法,而信息通常分为数值型信息和字符型信息,字符型信息用ASCII码表示,数值型信息在计算机内用机器数来表示,机器数的形式又分为原码、反码和补码,不论是ASCII码还是机器数最终在计算机内存中都用二进制数来表示,本文主要研究数值型信息中真值和各种数码之间的相互关系以及计算方法。

关键词:机器数,真值,原码,反码,补码

参考文献

[1] 谢元成.微机系统中补码的原理及意义[J].硅谷,2014(17).

[2] 张德伟,沈培锋.计算机中的补码问题探究[J].计算机教育,2008(23).

[3] 武涛,智洋,白丽珍.三种机器码的联系与剖析[J].大学教育,2017(04).

[4] 孙晓丽,富坤,耿恒山,王晓东,秘海晓.基于8位模型机的定点原码一位乘法的实现[J].电脑知识与技术,2012(22).

上一篇:如何调动员工积极性下一篇:我国银行理财产品会计处理浅析