原码、反码和补码

合集下载

原码_反码_补码及运算

原码_反码_补码及运算
原码,反码,补码及运算
一、定义 1.原码 正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。用这 样的表示方法得到的就是数的原码。 【例2.13】当机器字长为8位二进制数时: X=+1011011 [X]原码= 01011011 Y=-1011011 [Y]原码= 11011011 [+1]原码=00000001 [-1]原码= 10000001 [+127]原码=01111111 [-127]原码= 11111111 原码表示的整数范围是: -(2n-1-1)~+(2n-1-1),其中n为机器字长。 则:8位二进制原码表示的整数范围是-127~+127 16位二进制原码表示的整数范围是-32767~+32767 2.反码 对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以 外的各位按位取反。 【例2.14】当机器字长为8位二进制数时: X=+1011011 [X]原码=01011011 [X]反码=01011011 Y=-1011011 [Y]原码=11011011 [Y]反码=10100100 [+1]反码=00000001 [-1]反码=11111110 [+127]反码=01111111 [-127]反码=10000000 负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。 反码表示的整数范围与原码相同。 3.补码 正数的补码与其原码相同,负数的补码为其反码在最低位加1。 引入补码以后,计算机中的加减运算都可以统一化为补码的加法运算,其符号位也参 与运算。 【例2.15】(1)X=+1011011 (2) Y=-1011011 (1)根据定义有: [X]原码=01011011 [X]补码=01011011 (2) 根据定义有: [Y]原码=11011011 [Y]反码=10100100 [Y]补码=10100101 补码表示的整数范围是-2n-1~+(2n-1-1),其中n为机器字长。 则:8位二进制补码表示的整数范围是-128~+127(-128 表示为10000000,无对应的原 码和反码) 16位二进制补码表示的整数范围是-32768~+32767 当运算结果超出这个范围时,就不能正确表示数了,此时称为溢出。

二进制5位数原码、补码、反码表

二进制5位数原码、补码、反码表

原码、补码和反码是在计算机中常用的一种数据表示方式。在这种表

示方式中,正数和负数均采用二进制形式表示,通过一定的规则进行

转换。本文将以二进制5位数为例,对原码、补码和反码进行详细介

绍和表格展示。

一、二进制5位数原码、补码、反码定义

1.1 原码定义

原码是最简单的一种表示方式,它的规则是:正数的原码就是其二进

制形式,负数的原码是在正数原码的基础上将最高位(符号位)变为1。+2在5位二进制数中的原码是xxx,-2在5位二进制数中的原码是xxx。

1.2 补码定义

补码是计算机中常用的一种表示方式,它的规则是:正数的补码就是

其二进制形式,负数的补码是将其绝对值的原码按位取反然后加1。

+2在5位二进制数中的补码是xxx,-2在5位二进制数中的补码是xxx。

1.3 反码定义

反码是原码的一种变换形式,它的规则是:正数的反码就是其二进制形式,负数的反码是将其绝对值的原码按位取反。+2在5位二进制数中的反码是xxx,-2在5位二进制数中的反码是xxx。

二、二进制5位数原码、补码、反码表

以下是以二进制5位数为例的原码、补码和反码一览表:

原码补码反码

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

xxx xxx xxx

原码、反码、补码

原码、反码、补码

原码、反码、补码

⼀、什么是原码、反码、补码

原码:将⼀个整数,转换成⼆进制,就是其原码。如单字节的5的原码为:0000 0101;-5的原码为1000 0101。

反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每⼀位取反。如单字节的5的反码为:0000 0101;-5的反码为1111 1010。

补码:正数的补码就是其原码;负数的反码+1就是补码。如单字节的5的补码为:0000 0101;-5的补码为1111 1011。

⼆、为什么要有这三类码

计算机只能识别0和1,使⽤的是⼆进制。⽽在⽇常⽣活中⼈们使⽤的是⼗进制,并且我们⽤的数值有正负之分。于是在计算机中就⽤⼀个数的最⾼位存放符号(0为正,1为负)。这就是机器数的原码了。

有了数值的表⽰⽅法就可以对数进⾏算术运算,但是很快就发现⽤带符号位的原码进⾏乘除运算时结果正确,⽽在加减运算的时候就出现了问题,如下:假设字长为8bits

(1) 10 - (1)10 = (1)10 + (-1)10 = (0)10

(0 0000001)原 + (1 0000001)原 = (1 0000010)原 = ( -2 ) 显然不正确。

因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数⾝上。对除符号位外的其余各位逐位取反就产⽣了反码。反码的取值空间和原码相同且⼀⼀对应。下⾯是反码的减法运算:

(1)10 - (1)10 = (1)10 + (-1)10= (0)10

(0 0000001)反 + (1 1111110)反 = (1 1111111)反 = ( -0 ) 有问题。

原码、反码、补码的求法

原码、反码、补码的求法

反码

‎在计算‎机内,定点‎数有3种表‎示法:原码‎、反码和补‎码。

‎所谓原码就‎是前面所介‎绍的二进制‎定点表示法‎,即最高位‎为符号位,‎“0”表示‎正,“1”‎表示负,其‎余位表示数‎值的大小。‎

反码‎表示法规定‎:正数的反‎码与其原码‎相同;负数‎的反码是对‎其原码逐位‎取反,但符‎号位除外。‎

补码‎表示法规定‎:正数的补‎码与其原码‎相同;负数‎的补码是在‎其反码的末‎位加1。

‎ 1、原‎码、反码和‎补码的表示‎方法

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

‎例如:‎符号位数‎值位

‎[+7]原‎= 0 0‎00011‎1 B

‎[-7]‎原= 1 ‎00001‎11 B

‎注意:‎a. 数0‎的原码有两‎种形式:

‎ [+0‎]原=00‎00000‎0B [-‎0]原=1‎00000‎00B

‎b. 8‎位二进制原‎码的表示范‎围:-12‎7~+12‎7

(‎2)反码:‎

正数‎:正数的反‎码与原码相‎同。

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

例‎如:符号‎位数值位‎

[+‎7]反= ‎0 000‎0111 ‎B

[‎-7]反=‎1 11‎11000‎B

‎注意:a.‎数0的反‎码也有两种‎形式,即

‎ [+0‎]反=00‎00000‎0B

‎[- 0]‎反=111‎11111‎B

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

‎(3)‎补码的表示‎方法

‎1)模的概‎念:把一个‎计量单位称‎之为模或模‎数。例如,‎时钟是以1‎2进制进行‎计数循环的‎,即以12‎为模。在时‎钟上,时针‎加上(正拨‎)12的整‎数位或减去‎(反拨)1‎2的整数位‎,时针的位‎置不变。1‎4点钟在舍‎去模12后‎,成为(下‎午)2点钟‎(14=1‎4-12=‎2)。从0‎点出发逆时‎针拨10格‎即减去10‎小时,也可‎看成从0点‎出发顺时针‎拨2格(加‎上2小时)‎,即2点(‎0-10=‎-10=-‎10+12‎=2)。因‎此,在模1‎2的前提下‎,-10可‎映射为+2‎。由此可见‎,对于一个‎模数为12‎的循环系统‎来说,加2‎和减10的‎效果是一样‎的;因此,‎在以12为‎模的系统中‎,凡是减1‎0的运算都‎可以用加2‎来代替,这‎就把减法问‎题转化成加‎法问题了(‎注:计算机‎的硬件结构‎中只有加法‎器,所以大‎部分的运算‎都必须最终‎转换为加法‎)。10和‎2对模12‎而言互为补‎数。

二进制的原码,补码,反码详解

二进制的原码,补码,反码详解

二进制的原码,补码,反码详解

原码、反码、补码的概念

原码:最高位是符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制。

反码:正数的反码与原码一致,负数的反码是对原码按位取反,只是最高位(符号位)不变。补码:正数的补码与原码一致,负数的补码是对原码按位取反加1,符号位不变。

原码、反码、补码的定义

原码、反码、补码的定义

原码、反码、补码的定义

所有的负数的反码等于原码各位取反;补码等于反码加一.十六进制也是先化成2进制的在化补码。补码的用途是让机器学会减法运算的。应为所有的处

理器是电路做的,电路其实只是加法器,只能做加法。如何能让电脑做减法呢,就用补码啊。减去一个数就等于加上她的补码。

一、原码、反码、补码的定义

1、原码的定义

①小数原码的定义

[X]原=X 0≤X<1 1-X-1<X≤0

例如:X=+0.1011,[X]原=01011 X=-0.1011[X]原=11011

②整数原码的定义

[X]原=X 0≤X<2n 2n-X-2n<X≤0 2、补码的定义

①小数补码的定义

[X]补=X 0≤X<1 2+X-1≤X<0

例如:X=+0.1011,[X]补=01011 X=-0.1011,[X]补=10101

②整数补码的定义

[X]补=X 0≤X<2n 2n+1+X-2n≤X<0 3、反码的定义

①小数反码的定义

[X]反=X 0≤X<1 2-2n-1-X-1<X≤0

例如:X=+0.1011[X]反=01011 X=-0.1011[X]反=10100

②整数反码的定义

[X]反=X 0≤X<2n 2n+1-1-X-2n<X≤0 4.移码:移码只用于表示浮点数的阶码,所以只用于整数。

①移码的定义:设由1位符号位和n位数值位组成的阶码,则[X]移=2n+X-

2n≤X≤2n

例如:X=+1011[X]移=11011符号位"1"表示正号

X=-1011[X]移=00101符号位"0"表示负号

原码、反码与补码知识讲解

原码、反码与补码知识讲解

原码、反码与补码知识讲解

2.2 原码、反码与补码

在计算机内的数(称之为“机器数”)值有3种表示法:原码、反码和补码。所谓原码就是带正、负号的二进制数,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。由此可见,这三种表示法中,关键是负数的表示方式不一样。

2.2.1 正负数表示、定点数与浮点数

在计算机内,通常把1个二进制数的最高位定义为符号位,用“0”表示正数,“1”表示负数;其余位表示数值。

规定小数点位置固定不变的数称为“定点数”;小数点的位置不固定,可以浮动的数称为“浮点数”。

2.2.2 原码

原码表示法是定点数的一种简单的表示法。用原码表示带符号二进制数时,符号位用0表示正,1表示负;数值位保持不变。原码表示法又称为符号-数值表示法。

1. 小数原码表示法

设有一数为x,则原码表示可记作[x]原(下标表示)。例如,X1= +1010110 ;X2= -1001010

原码表示数的范围与二进制位数有关。设二进制小数X=±0.X1X2…Xm,则小数原码的定义如下:

例如:X=+0.1011时,根据以上公式可得[X]原=0.1011;X=-0.1011时,根据以上公式可得[X]原= 1-(-0.1011)=1.1011=1.1011

当用8位二进制来表示小数原码时,其表示范围为:最大值为0.1111111,其真值约为(0.99)10 ;最小值为1.1111111,其真值约为(-0.99)10。根据定义,小数“0”的原码可以表示成0.0…0或

原码、补码、反码

原码、补码、反码

原码、补码、反码

⼀、机器数值和真值(以下引⾃博客园)

⼀个数在计算机中的⼆进制表⽰形式, 叫做这个数的机器数。机器数是带符号的,在计算机中⽤⼀个数的最⾼位存放符号, 正数为0, 负数为1。

⽐如,⼗进制中的数 +3 ,计算机字长为8位,转换成⼆进制就是00000011。如果是 -3 ,就是 10000011 。那么,这⾥的 00000011 和10000011 就是机器数。

因为第⼀位是符号位,所以机器数的形式值就不等于真正的数值。例如上⾯的有符号数 10000011,其最⾼位1代表负,其真正数值是 -3 ⽽不是形式值131(10000011转换成⼗进制等于131)。

所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值= –000 0001 = –1。

⼆、原码、补码、反码

1,原码

原码就是符号位加上真值的绝对值,即⽤第⼀位表⽰符号,其余位表⽰值,⽐如如果是8位⼆进制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

因为第⼀位是符号位,所以8位⼆进制数的取值范围就是:

[1111 1111 , 0111 1111] 即 [-127 , 127]

原码是⼈脑最容易理解和计算的表⽰⽅式。

2,反码

反码的表⽰⽅法:正数的反码是其本⾝,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

原码反码补码

原码反码补码

1.原码表示法

(1)整数原码的定义为:

式中x为真值,n为整数的位数。

小数原码的定义为

注:正数的原码是把符号位改为‘0’,负数的原码把符号位改为‘1’即可。

例:当x=+0.1101时,[x]原=0.1101

当x=-0.1101时,[x]原=1-(-0.1101)=1.1101

(2)原码的表数范围。

对于定点整数:

一个n+1位原码能表示的最大正数为01…11,即2n-1;能表示的最小数为绝对值最大的负数111…1,即-(2n-1)。所以原码能表示的数值范围为: -(2n-1) ≤ x≤ 2n-1。

例:字长为8位的定点整数,x的原码的表示范围为(-127 ,127).

对于定点小数:

一个n+1位定点小数原码能表示的最大正数为0.1…11,即1-2-n;能表示的最小数为绝对值最大的负数为1.11…1,即-(1-2-n)。定点小数原码的数值范围为: -(1-2-n) ≤ x≤ 1-2-n。

2.反码表示法

例:正数的反码和原码一样,负数的反码把原码除符号位以外的所有位取反。

例:字长为8位的定点整数,x的反码的表示范围为(-127 ,127).

3.补码表示法

(1)整数补码的定义为:

式中x为真值,n为整数的位数。

小数补码的定义为

注:正数的补码是和原码相同,负数的补码把原码除符号位以外的所有为取反(反码),再加‘1’

例:当x=+0.1101时,[x]原=0.1101,[x]补=0.1101

当x=-0.1101时,[x]原=1.1101,[x]补=1.0010+1=1.0011

[x]补=2+x=10.0000-0.1101=1.0011

原码、反码、补码、移码、阶码、BCD码、余3码

原码、反码、补码、移码、阶码、BCD码、余3码

原码、反码、补码、移码、阶码、BCD码、余3码

原码:原码(true form)是一种计算机中对数字的二进制定点表示方法。源码表示法在数值前面增加了一位符号位(即最高位为符号位),该位为0表示正数,该位为1表示负数。

反码:反码表示法规定:正数的反码于原码相同;负数的反码是其原码除符号位外逐位取反。补码:补码(two’s complement) 1、在计算机中,数值一律用补码表示(存储)。主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。2、补码与原码的转换过程几乎是相同的。

==补码的概述==

求给定数值的补码表示分以下两种情况:

(1)正数的补码:与原码相同。

【例1】+9的补码是00001001。(这个+9的补码说的是用8位的2进制来表示补码的,补码表示表示方式很多,还有16位2进制补码表示形式,以及32位2进制补码表示形式等。)(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后加1。同一数字在不同的补码表示形式里头是不同的。

【例2】求-7的补码。

因为给定数是负数,则符号位为“1”。后七位:+7的原码(0000111)→按位取反(1111000)→加1(1111001),所以-7的补码为1111001。

已知一个数的补码,求原码的操作分两种情况:

(1)如果补码的符号位为“0”,表示是一个正数,其原码就是补码。

(2)如果补码的符号位为“1”,表示是一个负数,那么求给定的这个补码的补码就是要求的原码。另一种方法求负数的补码,如下:

原码反码补码计算题

原码反码补码计算题

原码反码补码计算题

以下是一个原码、反码和补码的计算题:

假设有一个字节的数值,其原码表示为10000111,请问其反码和补码分别是多少?

解答如下:

首先,我们需要了解原码、反码和补码的基本概念。

原码就是符号位加上真值的绝对值,即第一位为符号位,其余位表示真值。正数的符号位为0,负数的符号位为1。

反码是原码的符号位不变,其余各位直接取反,即1->0, 0->1。

补码是在反码的基础上加1。

现在我们来计算这个问题的答案:

原码:10000111,这是一个负数,因为符号位是1。

反码:不变符号位,其余各位取反,得到11111000。

补码:在反码的基础上加1,得到11111001。

所以,这个字节的数值的反码和补码分别是11111000和11111001。

原码反码补码PPT课件

原码反码补码PPT课件

(
8
H
X
h
x
1001 HT
EM
)
9
I
Y
i
y
1010 LF SUB
*
:
J
Z
j
z
1011 VT ESC
+
;
K
[
k
{
1100 FF
FS
,
<
L
\
l
|
1101 CR
GS
-
=
M
]
m
}
1110 SO
RS
.
>
N
n
~
1111
SI
US
/
?
O
o
DEL
注:H 表示高 3 位,L 表示低 4 位。
15
(2n1 1) ~ (2n1 1)
对应的原码是1111~ 0111。
4
数0的原码
8位数0的原码:+0 = 0 0000000 - 0 = 1 0000000
即:数0的原码不唯一。
5
•反码[X]反
定义
若X>0 ,则 [X]反=[X]原 若X<0, 则 [X]反= 对应原码的符号位
不变,数值部分按位求反
[例]:
真值
机器数
+52 = +0110100 = 0 0110100

原码、反码和补码

原码、反码和补码

原码、反码和补码

数在计算机中是以⼆进制形式表⽰的,数分为有符号数和⽆符号数,原码、反码和补码都是有符号定点数的表⽰⽅法。

其中,原码就是这个数本⾝的⼆进制形式,数的最⾼位为符号位,0表⽰正号,1表⽰负号,例如00000001就是+1,10000001就是-1。另外,正数的反码和补码都和原码相同。⽽负数的反码就是将其原码除符号位之外的各位求反,例如10000011的反码为11111100;负数的补码是将其原码除符号位之外的各位求反(即该负数的反码)之后,再在末位加1,例如10000011的补码为11111101。

⼀个数的原码和它的补码是可逆的,即补码的补码为原码。

另外,00000000和10000000都表⽰数字0,原码表⽰不同,但补码⼀样,为00000000。其中,10000000的反码为11111111,末位加1,因为进位,最⾼位溢出,故符号位变成0,补码为00000000。

例如:1011的原码、反码和补码分别为01011、01011、01011;-1011的原码、反码和补码分别为11011、10100、10101;0.1101的原码、反码和补码分别为0.1101、0.1101、0.1101;-0.1101的原码、反码和补码分别为1.1101、1.0010、1.0011。

⼋位⼆进制原码的表⽰范围为-127~127,因为2的8次⽅为256,故-127~-0和+0~127之间共有256个数。同理,⼋位⼆进制反码的表⽰范围也是-127~127。⽽⼋位⼆进制补码中,由于-0和+0的补码相同,故⽤-128代替了-0,所以表⽰范围为-128~127。

原码、反码、补码、移码与浮点

原码、反码、补码、移码与浮点

符号位00 表示正数 11 表示负数 结果的符号位为01时,称为上溢;为10时,称为下溢
例题:设 x=0.1101,y=-0.0111,符号位为双符号位,用补码求 x+y,x-y 。 [x]补+[y]补=00 1101+11 1001=00 0110 [x-y]补=[x]补+[-y]补=00 1101+00 0111=01 0100 结果错误,正溢出
2、补码的定义
①小数补码的定义
[X]补 =
X 2+ X
0≤X <1 -1 ≤ X < 0
例如: X=+0.1011, [X]补= 01011 X=-0.1011, [X]补= 10101
②整数补码的定义
[X]补 =
X 2n+1+X
0≤X <2n - 2n ≤ X < 0
3、反码的定义
①小数反码的定义
§原码、反码、补码、移码
一、原码、反码、补码、移码的定义
1、原码的定义
①小数原码的定义
[X]原 =
X 1- X
0≤X <1 -1 < X ≤ 0
例如: X=+0.1011 , [X]原= 01011 X=-0.1011 [X]原= 11011
②整数原码的定义
[X]原 =
X 2n-X
0≤X <2n - 2n < X ≤ 0

原码补码反码

原码补码反码

原码,补码,反码

正数的原码,补码,反码都相同,都等于它本身

负数的补码是:符号位为1,其余各位求反,末位加1

反码是:符号位为1,其余各位求反,但末位不加1

也就是说,反码末位加上1就是补码

1100110011 原

1011001100 反除符号位,按位取反

1011001101 补除符号位,按位取反再加1

正数的原反补是一样的

在计算机中,数据是以补码的形式存储的:

在n位的机器数中,最高位为符号位,该位为零表示为正,为1表示为负;

其余n-1位为数值位,各位的值可为0或1。

当真值为正时:原码、反码、补码数值位完全相同;

当真值为负时:原码的数值位保持原样,反码的数值位是原码数值位的各位取反,

补码则是反码的最低位加一。

注意符号位不变。

如:若机器数是16位:

十进制数17 的原码、反码与补码均为:0000000000010001

十进制数-17 的原码、反码与补码分别为:1000000000010001、1111111111101110、111111*********

1、在计算机系统中,数值一律用补码来表示(存储)。

主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。

2、补码与原码的转换过程几乎是相同的。数值的补码表示也分两种情况:

(1)正数的补码:与原码相同。

例如,+9的补码是00001001。

(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。

例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码0000111按位取反为1111000;再加1,所以-7的补码是11111001

原码反码补码计算口诀

原码反码补码计算口诀

原码反码补码计算口诀

在计算机中,原码、反码、补码是十分重要的知识点,也是非常基础的内容。学习计算机相关的知识,必须掌握原码、反码、补码的转换方法,否则会导致计算错误。今天,我们来聊一聊“原码反码补码计算口诀”。

一、原码

首先,我们来介绍一下原码。原码是一种十进制数在计算机中的二进制表示方法。在计算机中,原码表示方式为首位为符号位,0代表正数,1代表负数,其余位表示数值。例如,十进制数“+7”,在计算机中的原码为“00000111”;十进制数“-7”,在计算机中的原码为“10000111”。

二、反码

接着,我们来介绍一下反码。反码也是一种十进制数在计算机中的二进制表示方法。在计算机中,反码的表示方式为正数原码不变,负数将原码除符号位外的位取反。例如,十进制数“+7”,在计算机中的反码为“00000111”;十进制数“-7”,在计算机中的反码为“11111000”。

三、补码

最后,我们来介绍一下补码。在计算机中,补码表示方式为正数原码不变,负数将原码除符号位外的位取反,然后加一。例如,十进制数“+7”,在计算机中的补码为“00000111”;十进制数“-7”,在计算机中的补码为“11111001”。

四、原码反码补码计算口诀

现在,我们已经介绍了原码、反码、补码的概念,下面是它们之间的转换口诀:

1、由原码求反码:负数取反,正数不变。

2、由反码求原码:符号位不变,其余取反。

3、由补码求原码:符号位不变,其余取反后加一。

4、由原码求补码:负数先取反再加一,正数不变。

5、由反码求补码:负数先加一再取反,正数不变。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

原码:一个整数在内存中占二字节,规定高位字节的最左边一位为最高位,表示数的符号(0

正1负),其余各位代表数本身的绝对值。

如:+8的原码0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0

- 8的原码 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0

+0的原码0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

- 0的原码 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

反码:正数的反码与原码同,负数的反码规定符号位不动,其余各位对原码取反

如:- 8的反码 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1

- 0的反码 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

补码:正数的补码同原码,负数的补码为它的反码加1

如:- 8的补码 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0

- 0的补码0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

+0的补码0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

负数补码的补码是它的原码。

已知有一带符号数,其二进制表示为

1111 1111 1001 0111

计算它的值= -?

理解:“一个负数补码的补码就是它的原码”。即:“负数的负数是它本身”

记-x = 1111 1111 1001 0111,求x

(1111 1111 1001 0111)反+ 1

= (0000 0000 0110 1000) + 1

= (0000 0000 0110 1001)

=(69)16 = 6*16+9 = 105

故:1111 1111 1001 0111 为-105

为什么负数采用补码表示法?

用补码表示数时,0的代码是唯一的;

优化加法与减法运算,加减时不必考虑符号位,与数值位同样参与

运算;

带符号与无符号的混合相加;

加减法的统一(在二进制中,求补码(所有位取反加1)即取负运算)1111 1111 1111 1101

+ 0000 0000 0000 0101

(-3)+(+5)=(2)1 0000 0000 0000 0010

反码运算结果不符

0000 0000 0000 0001

+ 1111 1111 1111 1101

(+1)+(-3)=(-2)1111 1111 1111 1110

但原码运算结果不符

相关文档
最新文档