本文主要是介绍第一章 - 第9节- 原码补码反码 - 课件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
第9节 原码补码反码
一、机器数和真值
在学习原码、反码和补码之前,需要先了解机器数和真值的概念。
1. 机器数
一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号,正数为0,负数为1。
比如,十进制中的数+3,计算机字长为8位,转换成二进制就是00000011,如果是-3就是10000011。
那么,这里的00000011和10000011就是机器数。
2. 真值
机器数的第一位是符号位,后边才是真正的数值,所以机器数的形式值就不等于真正的数值。例如上面的有符号数10000011,其最高位1代表负,其真正数值是-3而不是形式值131(10000011转换成十进制等于131)。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
例:
0000 0001的真值= +000 0001 = +1
1000 0001的真值= -000 0001 = -1
二、数的原码、补码和反码表示
原码、反码、补码是计算机存储一个具体数字的编码方式。数值在计算机中是以补码的方式存储的。
1.原码
原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制:
[+1] 原 = 0000 0001
[-1] 原 = 1000 0001
第一位是符号位,因为第一位是1,所以8位二进制数的取值范围就是:
[1111 1111, 0111 1111] ==>[-127,127]
2.反码
反码
这篇关于第一章 - 第9节- 原码补码反码 - 课件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!