机器数
一个数在计算机中的二进制表示形式,叫做这个数的机器数,机器数是带符号的,在计算机中用一个数的最高位存放符号,正数为0,负数为1,比如,十进制中的+3,假设计算机字长为8位,转换成二进制就是0000 0011,如果是-3,就是1000 0011.那么,这里0000 0011和1000 0011就是机器数,
真值
因为第一位为符号位,所以机器数的形式值就不等于真正的数值,例如上面的有符号数1000 0011,其最高位1代表负,其真正数值是-3,而不是形式值131(1000 0011转换成10进制等于131),所以为了区别起见,将带符号的机器数对应的真正数值称为机器数的真值。例如:0000 0001的真值=+000 0001=+1,1000 0001的真值=-000 0001=-1
原码:
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值,比如如果是8位二进制,[+1]原=0000 0001.[-1]原=1000 0001.因为第一位是符号位,所以8位二进制的取值范围就是:[1111 1111,0111 1111]即[-127,127],原码是人脑最容易理解和计算的表示方式。
反码:
反码的表示方法是:正数的反码是其本身,负数的反码是在其原码的基础上,符号位不变,其余各个位取反,[+1]=[0000 0001]原= [0000 0001]反,[-1]=[1000 0001]原=[1111 1110]反。可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值,通常要将其转换成原码再计算。
补码:
补码的表示方法是:正整数的二进制补码与其二进制原码相同,负整数的二进制补码,先求与该负数相对应的正整数的二进制代码,然后所有位取反加1,不够位数时左边补1,例如,[+1]=[0000 0001]原=[0000 0001]反=[0000 0001]补,[-1]=[1000 0001]原=[1111 1110]反=[1111 1111]补,对于负数,补码表示方式也是人脑无法直观看出其数值的,通常也需要转换成原码再计算其数值。
我这个博客就是记录我的学习笔记,学习过程中看到一些好的博客内容也会转载过来,若有侵权,纯属无意,您可以与我联系,我会及时进行删除。