当前位置:首页 > 游戏信息 > 正文

关于原码,反码,补码的定义(要分正负数,有符号和无符号的),写得详细些,通俗易懂

关于原码,反码,补码的定义(要分正负数,有符号和无符号的),写得详细些,通俗易懂-第1张-游戏信息-龙启网

原码就是这个数值本身的二进制形式

例如

0000 0001 表示+1

1000 0001 表示-1

有符号最高位表示符号位,0表示正,1表示负。

正数的原码,反码,补码都是这个数值本身的二进制形式。(2)负数的原码是数值的本身二进制形式。

负数的反码是对原码除符号位的其余各位取反(1变0,0变1)的操作。

负数的补码是先求反码,然后在+1。

(-3)原=(1000 0011)原=(1111 1100)反=(1111 1101)补设计补码的目的:

(1)在计算机中是没有减法运算的,只有加法运算。为了能达到使用减法,于是补码产生了。

(2)为了统一正0和负0在计算机中的表示。

(a)补-(b)补=(a)补+(-b)补

正数零:0000 0000

负数零:1000 0000

在原码中0表示有2种,给计算结果带来不正确。

但这两个0的补码确相同都是0000 0000

注意一点:如果在求补码+1后有进位,要一直往前进位,包括符号位

例如

(1000 0000)补=(1111 1111)反+1=(1 0000 0000) 最高位溢出了,符号位现在是0

1000 0000 这个补码比较特殊,代表的是-128.所以n位能表示的范围

-2^(n-1)到2^(n-1)-1 比n位原码能表示的数多个一个(原因没有+0和-0之分了,而-0用别的数表示,所以多一个)。

三.原码,反码,补码的表示方法

(1)原码:在数值前直接加符号位表示方法。

例如: 符号位 数值位

(+7)原= 0 000 0111

(-7)原= 1 000 0111注意:

a.数值0在原码中有两种表现形式

(+0)原=(0000 0000) (-0)原=(1000 0000)

b.8位二进制原码表示的范围-127~+127(2)反码:

正数:正数的原码和反码相同。

负数:负数的反码,符号位为“1”,数值部分按位取反。例如: 符号位 数值位

(+7)反= 0 000 0111

(-7)反= 1 111 1000注意:

a.数值0在反码中也有两种表现形式

(+0)反=(0000 0000) (-0)反=(1111 1111)

b.8位二进制原码表示的范围-127~+127