计算机中数据的表示

机器码和真值

机器码:用二进制0,1表示数字的正负,‘0’表示正号,‘1’表示负号,且把这个数字放在最高位数字前表示,及把符号位和数值放在一起的称为机器码
真值:就是我们平常表示数字的方式
举例:真值 +1001345=机器数就是0 1001345

原码

原码数值部分用数值部分的绝对值直接表示,最高位为数值位,‘0’表示正好,‘1’表示负号。
注意:0的原码有两个值 00000000 和10000000,分为正负两个
虽然原码简单易懂,但是由于符号位不能参与加减,所以人们引入了补码表示法

反码

反码是的目的便于求负数的补码,正数反码不变,负数就是将一个数的符号位不改变,而是将一个数字的数值位取反

补码

补码的意义就在于把减法运算转化位加法运算,其定义就是把某数X加上模数,模数就是这个数进制-1的大小
正数的补码为正数本身 [+59]=00111011
负数的补码就是刚才那个公式[-59]=10111011 [-59]反=11000100
[-59]补=[-59]反+1=11000101

运算(在8位的环境下)

加法
所以[+59]+[-59]= 00111011+11000101=00000000
将溢出位取消
再比如 [+59]+[-77]=00111011+‭11001101‬
将他们的补码进行加减[+59]补+[-77]补=00111011+10110011=11101110
若想获得他的真值,再去求补码就为-16
再如[5]+[6]=00000101+00000110=00001011
在获得的值为正数的时候补码就是本身,而在获得的是负数的时候,想获得真值,就需要再去求补码
减法
在遇到减法的时候就将他转化成加法,本质是一样的,比如[16-8],就将8连同符号一起取反码,就为[16]+[-8]=00010000+11111000=00001000

发布了31 篇原创文章 · 获赞 8 · 访问量 555

猜你喜欢

转载自blog.csdn.net/dongdong7_77/article/details/103743906