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

合集下载

原码、反码和补码

原码、反码和补码

原码:一个整数在内存中占二字节,规定高位字节的最左边一位为最高位,表示数的符号(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但原码运算结果不符。

原码、反码、补码

原码、反码、补码

原码、反码、补码⼀、什么是原码、反码、补码原码:将⼀个整数,转换成⼆进制,就是其原码。

如单字节的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 ) 有问题。

(1)10 - (2)10 = (1)10 + (-2)10 = (-1)10(0 0000001)反 + (1 1111101)反 = (11111110)反 = (-1) 正确。

问题出现在(+0)和(-0)上,在⼈们的计算概念中零是没有正负之分的。

(印度⼈⾸先将零作为标记并放⼊运算之中,包含有零号的印度数学和⼗进制计数对⼈类⽂明的贡献极⼤)。

原码、反码、补码相关知识

原码、反码、补码相关知识

基本概念在计算机内部表示二进制数的方法称为数值编码,把一个数及其符号在机器中的表示加以数值化,称为机器数。

机器数所代表的数称为数的真值。

表示一个机器数,应考虑以下三个因素:1.机器数的范围字长为8位,无符号整数的最大值是(11111111)B=(255)D,此时机器数的范围是0~255。

字长为16位,无符号整数的最大值是(1111111111111111)B=(FFFF)H=(65535)D 此时机器数的范围是0~65535。

2.机器数的符号在算术运算中,数据是有正有负的,将这类数据称为带符号数。

为了在计算机中正确地表示带符号数,通常规定每个字长的最高位为符号位,并用0表示正数,用1表示负数。

3.机器数中小数点的位置在机器中,小数点的位置通常有两种约定:一种规定小数点的位置固定不变,这时的机器数称为“定点数”。

另一种规定小数点的位置可以浮动,这时的机器数称为“浮点数”。

4.原码正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值。

用这样的表示方法得到的就是数的原码。

【例1】当机器字长为8位二进制数时:X=+1011011 [X]原码=01011011Y=+1011011 [Y]原码=11011011[+1]原码=00000001 [-1]原码=10000001[+127]原码=01111111 [-127]原码=11111111原码表示的整数范围是:-(2n-1-1)~+(2n-1-1),其中n为机器字长。

则:8位二进制原码表示的整数范围是-127~+12716位二进制原码表示的整数范围是-32767~+327675.反码对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反。

【例2.14】当机器字长为8位二进制数时:X=+1011011 [X]原码=01011011 [X]反码=01011011Y=-1011011 [Y]原码=11011011 [Y]反码=10100100[+1]反码=00000001 [-1]反码=11111110[+127]反码=01111111 [-127]反码=10000000负数的反码与负数的原码有很大的区别,反码通常用作求补码过程中的中间形式。

计算机的原码反码补码概念

计算机的原码反码补码概念

计算机中原码、反码和补码的概念
在计算机中,我们使用三种主要的编码方式来表示整数,它们分别是原码、反码和补码。

每种编码方式都有其特定的表示方法和应用场景。

1.原码概念
原码就是将二进制数的最高位作为符号位,其余位表示数值。

正数的符号位为0,负数的符号位为1。

因此,原码表示的整数范围是-2^n-1到2^n-1,其中n是原码的位数。

例如,8位原码可以表示的范围是-128到127。

原码的优点是直观易懂,易于实现。

但原码也存在一些缺点,如不能直接进行加减运算,需要先进行符号扩展。

2.反码概念
反码是用来表示负数的二进制编码方式。

对于正数,反码与其原码相同。

对于负数,反码是将其原码除符号位以外的所有位取反(即0变为1,1变为0)。

例如,8位反码中,+7的编码为00000111,而-7的编码为11111000。

反码的优点是可以直接进行加减运算,不需要进行符号扩展。

但反码的缺点是不易于理解和记忆。

3.补码概念
补码是用来表示负数的另一种二进制编码方式。

与反码不同的是,补码在表示负数时会对符号位以外的所有位取反后加1。

因此,补码可以看作是反码加1的结果。

例如,8位补码中,+7的编码为00000111,而-7的编码为11111001。

补码的优点是可以直接进行加减运算,同时也可以进行减法运算而不需要进行符号扩展。

此外,补码还具有一些其他的优点,如易于理解和记忆、适用于有符号整数等。

因此,在现代计算机系统中,补码被广泛采用。

计算机中的原码、补码与反码

计算机中的原码、补码与反码

计算机中的原码、补码与反码⼀、原码: 所谓原码就是当前数字的⼆进制表现形式,int为例,第⼀位表⽰符号 (0正数 1负数)简单期间⼀个字节表⽰ +7的原码为: 00000111 -7的原码为: 10000111 对于原码来说,绝对值相等的正数和负数只有符号位不同。

⼆、反码: 正数的反码就是本⾝。

负数的反码是⼆进制保留符号位。

剩余位取反,⽐如-1的反码是1111 1110;三、补码: 正数的反码、补码、原码都是⼀样的,负数的补码是在其反码的基础上+1,⽐如-1的补码是1111 1111。

为什么要使⽤补码呢: 我们知道,0是不分正数还是负数的,也就是说,如果使⽤原码表⽰0的话,有两种表⽰⽅式,即00000000与10000000,这对计算来说很不⽅便。

如果我们使⽤补码来表⽰的话: 正数的0的表⽰: 因为正数的原码、反码、补码都是相同的。

所以正数0的反码与补码都是00000000; 负数的0的表⽰: 负数的0的原码是10000000,它的补码也就是在其反码的基础上+1,10000000的反码为符号位不变,剩余位取反,即为11111111,再加⼀的话为00000000,这样的话0的正数表⽰与负数表⽰都是00000000。

其实还有⼀个更重要的原因:就是利⽤⾼位溢出,将减法运算变成加法运算。

这样可以简化运算的设计:⽐如计算3-2,我们可以当做3+(-2)来运算:化为⼆进制: 3:0000 0011; -2:原码:1000 0010;反码:1111 1101;补码在反码基础上+1,即为:1111 1110这样3+(-2)的计算为:1000 0010 + 1111 1110 -------------------- ⾼位溢出结果为:0000 0001在计算机系统中,数值都是以补码来表⽰和存储的。

计算机计算过程是先转换成补码,再按位相加。

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

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

原码、反码与补码知识讲解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或1.0…0。

2. 整数原码表示法整数原码的定义如下:例如:X=+1101时,根据以上公式可得[X]原=01101;X=-1101时,根据以上公式可得[X]原=24-(-1101)=10000+1101=11101当用8位二进制来表示整数原码时,其表示范围为:最大值为01111111,其真值为(127)10 ;最小值为11111111,其真值为(-127)10 。

原码、反码、补码的定义

原码、反码、补码的定义

原码、反码、补码的定义所有的负数的反码等于原码各位取反;补码等于反码加一.十六进制也是先化成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"表示负号②移码与补码的关系:[X]移与[X]补的关系是符号位互为反码,例如:X=+1011[X]移=11011[X]补=01011 X=-1011[X]移=00101[X]补=10101③移码运算应注意的问题:◎对移码运算的结果需要加以修正,修正量为2n,即对结果的符号位取反后才是移码形式的正确结果。

简述原码、补码和反码的含义

简述原码、补码和反码的含义

简述原码、补码和反码的含义原码、补码和反码是用于表示有符号整数的三种不同的编码方式。

它们在计算机系统中用于处理带符号数的溢出和运算问题。

1. 原码(Sign and Magnitude):
•原码是最直观的一种表示方法,其中整数的符号用最高位表示(0表示正,1表示负),其余位表示数值的绝对值。

•例如,+5的8位原码表示为 00000101,-5表示为 10000101。

2. 反码(Ones' Complement):
•反码的符号位与原码相同,但是数值位取反。

即,正数的反码与原码相同,负数的反码是将其原码中的每一位取反。

•例如,+5的8位反码表示为 00000101,-5的8位反码表示为11111010。

3. 补码(Two's Complement):
•补码是计算机系统中最常用的表示方法,它解决了反码中的0有两个表示的问题。

•正数的补码与原码相同,而负数的补码是其反码加1。

•例如,+5的8位补码表示为 00000101,-5的8位补码表示为11111011。

这三种表示方法中,原码、反码和补码都有其优缺点。

补码在进行加减运算时更为方便,而且只有一种表示0的方式,因此在计算机中广泛应用。

在补码表示中,正数、负数的加法和减法可以通过相同的硬件电路实现,简化了计算机的设计。

原码, 反码, 补码 详解

原码, 反码, 补码 详解

发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特殊的数值上. 虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[0000 0000]原和[1000 0000]原两个编码表示0.
于是补码的出现, 解决了0的符号以及两个编码的问题:
[+1] = [00000001]原 = [00000001]反 = [00000001]补
所以不需要过多解释. 但是对于负数:
[-1] = [10000001]原 = [11111110]反 = [11111111]补
可见原码, 反码和补码是完全不同的. 既然原码才是被人脑直接识别并用于计算表示方式, 为何还会有反码和补码呢?
1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]补 + [1111 1111]补 = [0000 0000]补=[0000 0000]原
这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了.而且可以用[1000 0000]表示-128:
所以4, 16, 28关于模 12 同余.
负数取模
正数进行mod运算是很简单的. 但是负数呢?
下面是关于mod运算的数学定义:
上面是截图, "取下界"符号找不到如何输入(word中粘贴过来后乱码). 下面是使用"L"和"J"替换上图的"取下界"符号:
x mod y = x - y L x / y J
(-1) + (-127) = [1000 0001]原 + [1111 1111]原 = [1111 1111]补 + [1000 0001]补 = [1000 0000]补

原码、补码和反码

原码、补码和反码

原码、补码和反码在计算机内,定点数有3种表示法:原码、反码和补码所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

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

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

1、原码、反码和补码的表示方法(1)原码:在数值前直接加一符号位的表示法。

例如:符号位数值位[+7]原= 0 0000111 B[ -7]原= 1 0000111 B注意:a. 数0的原码有两种形式:[+0]原=00000000B [-0]原=10000000Bb. 8位二进制原码的表示范围:-127~+127(2)反码:正数:正数的反码与原码相同。

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

例如:符号位数值位[+7]反= 0 0000111 B[-7]反= 1 1111000 B注意:a. 数0的反码也有两种形式,即[+0]反=00000000B[- 0]反=11111111Bb. 8位二进制反码的表示范围:-127~+127(3)补码的表示方法1)模的概念:把一个计量单位称之为模或模数。

例如,时钟是以12进制进行计数循环的,即以12为模。

在时钟上,时针加上(正拨)12的整数位或减去(反拨)12的整数位,时针的位置不变。

14点钟在舍去模12后,成为(下午)2点钟(14=14-12=2)。

从0点出发逆时针拨10格即减去10小时,也可看成从0点出发顺时针拨2格(加上2小时),即2点(0-10=-10=-10+12=2)。

因此,在模12的前提下,-10可映射为+2。

由此可见,对于一个模数为12的循环系统来说,加2和减10的效果是一样的;因此,在以12为模的系统中,凡是减10的运算都可以用加2来代替,这就把减法问题转化成加法问题了(注:计算机的硬件结构中只有加法器,所以大部分的运算都必须最终转换为加法)。

原码、反码、补码概念

原码、反码、补码概念
一个负数按照绝对值大小转换成二进制数最高位补1就是负数的原码
原码、反码、补码概念
一、原码 1.一个正数的原码就是它的对应的二进制数字 2.一个负数,按照绝对值大小转换成二进制数,最高位补1就是负数的原码。 12的原码 0 0 0 0
二、反码 1.正数的反码与原码相同 2.负数的反码是对该数的原码除符号位外各位取反(0->1,1->0). 12的反码 0 0 0 0 1 1 0 0 -12的反码 1 1 1 1 0 0 1 1
三、补码 1.正数的补码与原码相同 2.负数的补码就是对其原码除符号位取反然后在最后一位加1 12的补码 0 0 0 0 1 1 0 0 -12的补码 1 1 1 1 0 1 0 0
负数的二进制其实就是以它的补码形式在计算机中存储的。

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

原码、反码与补码知识讲解
“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量 器上只能表示出模的余数。任何有模的计量器,均可化减法为加法运算。 对于计算机,模也就是相应位数寄存器所能表示的最大数再加。如位寄存器所能 存储的数是,这样位寄存器的模就等于。rqyn1。rqyn1。
码、阶码与移码
小数“”的补码只有一种表示形式,即…。 . 整数补码表示法 设二进制整数±…,则其补码定义为: 例如, 时,根据以上公式可得[]补 ; 时,根据以上公式可得[] 补 。同样,整数“”的补码也只有一种表示形式,即…。采用补码进行加、减 运算时,可以将加、减运算均通过加法实现,运算规则如下: LDAYt。LDAYt。 [ ]补 []补 []补
分别是[]补和[] 补。
“非”运算实现逻辑否定,即进行求反运算,非运算规则: , 。注意“非”运
补码的减法运算规则是:
算只是针对一个数所进行的“运算”,这与前面的“与”和“或”运算不一样。它的实
[-]补[]补+[-]补
3/4
个人收集整理-ZQ 质意义就是取反。如“”进行“非”运算后就得到“”,对比相应位即可验证以上运算 规则了。sQsAE。sQsAE。
正负数表示、定点数与浮点数 在计算机内,通常把个二进制数的最高位定义为符号位,用“”表示正数,“” 表示负数;其余位表示数值。 规定小数点位置固定不变的数称为“定点数”;小数点的位置不固定,可以浮 动的数称为“浮点数”。 原码 原码表示法是定点数的一种简单的表示法。用原码表示带符号二进制数时, 符号位用表示正,表示负;数值位保持不变。原码表示法又称为符号数值表示 法。b5E2R。b5E2R。 . 小数原码表示法 设有一数为,则原码表示可记作[]原(下标表示)。例如, + ; 原码表示数的范围与二进制位数有关。设二进制小数±…,则小数原码的定 义如下: 例如:时, 根据以上公式可得[]原;-时,根据以上公式可得[]原 ()

原码反码补码名词解释

原码反码补码名词解释

原码反码补码名词解释
原码、反码和补码是计算机中用于表示整数和浮点数的三种编码方式。

以下是这三种编码方式的详细解释:
1. 原码(Original Code):原码,也被称作自然码,是最简单的编码方式之一。

它直接将整数的二进制形式用作原码。

在原码表示法中,最高位被用作符号位,用于表示数值的正负。

当符号位为0时,表示正数,而当符号位为1时,表示负数。

以一个8位的原码系统为例,+7和-7的表示方式如下:00000111(+7)和10000111(-7)。

这种编码方式直观且易于理解,但并不适合计算机的快速运算。

2. 反码(Complement Code):反码是在原码的基础上进行符号扩展得到的。

对于正数,反码与原码相同;对于负数,反码是原码符号位不变,而其余各位取反。

在8位的反码系统中,+7和-7的表示方式如下:00000111(+7)和11111000(-7)。

反码在某些情况下比原码更适应计算机的运算,但它仍然存在一些问题。

3. 补码(Complements Code):补码是在反码的基础上加1得到的。

对于正数,补码与原码和反码相同;对于负数,补码是反码加1。

补码在计算机中得到广泛应用,因为它使得加法和减法操作可以统一进行。

在8位的补码系统中,+7和-7的表示方式如下:00000111(+7)和11111001(-7)。

补码的优点在于它消除了计算机在进行减法运算时的求反操作,使得计算更加高效。

需要注意的是,在实际的计算机系统中,为了简化硬件设计,通常采用补码来表示整数和浮点数。

学习电脑信息原码反码补码详细解析

学习电脑信息原码反码补码详细解析

原码, 反码, 补码详细解析一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.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第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:[1111 1111 , 0111 1111]即[-127 , 127]原码是人脑最容易理解和计算的表示方式.2. 反码反码的表示方法是:正数的反码是其本身负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.[+1] = [00000001]原= [00000001]反[-1] = [10000001]原= [11111110]反可见如果一个反码表示的是负数, 人脑无法直观的看出来它的数值. 通常要将其转换成原码再计算.3. 补码补码的表示方法是:正数的补码就是其本身负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)[+1] = [00000001]原= [00000001]反= [00000001]补[-1] = [10000001]原= [11111110]反= [11111111]补对于负数, 补码表示方式也是人脑无法直观看出其数值的. 通常也需要转换成原码在计算其数值.三. 为何要使用原码, 反码和补码在开始深入学习前, 我的学习建议是先"死记硬背"上面的原码, 反码和补码的表示方式以及计算方法.现在我们知道了计算机可以有三种编码方式表示一个数. 对于正数因为三种编码方式的结果都相同:[+1] = [00000001]原= [00000001]反= [00000001]补所以不需要过多解释. 但是对于负数:[-1] = [10000001]原= [11111110]反= [11111111]补可见原码, 反码和补码是完全不同的. 既然原码才是被人脑直接识别并用于计算表示方式, 为何还会有反码和补码呢?首先, 因为人脑可以知道第一位是符号位, 在计算的时候我们会根据符号位, 选择对真值区域的加减. (真值的概念在本文最开头). 但是对于计算机, 加减乘数已经是最基础的运算, 要设计的尽量简单. 计算机辨别"符号位"显然会让计算机的基础电路设计变得十分复杂! 于是人们想出了将符号位也参与运算的方法. 我们知道, 根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1 + (-1) = 0 , 所以机器可以只有加法而没有减法, 这样计算机运算的设计就更简单了.于是人们开始探索将符号位参与运算, 并且只保留加法的方法. 首先来看原码:计算十进制的表达式: 1-1=01 - 1 = 1 + (-1) = [00000001]原+ [10000001]原= [10000010]原= -2如果用原码表示, 让符号位也参与计算, 显然对于减法来说, 结果是不正确的.这也就是为何计算机内部不使用原码表示一个数.为了解决原码做减法的问题, 出现了反码:计算十进制的表达式: 1-1=01 - 1 = 1 + (-1) = [0000 0001]原+ [1000 0001]原= [0000 0001]反+ [1111 1110]反= [1111 1111]反= [1000 0000]原= -0发现用反码计算减法, 结果的真值部分是正确的. 而唯一的问题其实就出现在"0"这个特殊的数值上. 虽然人们理解上+0和-0是一样的, 但是0带符号是没有任何意义的. 而且会有[0000 0000]原和[1000 0000]原两个编码表示0.于是补码的出现, 解决了0的符号以及两个编码的问题:1-1 = 1 + (-1) = [0000 0001]原+ [1000 0001]原= [0000 0001]补+ [1111 1111]补= [0000 0000]补=[0000 0000]原这样0用[0000 0000]表示, 而以前出现问题的-0则不存在了.而且可以用[1000 0000]表示-128:(-1) + (-127) = [1000 0001]原+ [1111 1111]原= [1111 1111]补+ [1000 0001]补= [1000 0000]补-1-127的结果应该是-128, 在用补码运算的结果中, [1000 0000]补就是-128. 但是注意因为实际上是使用以前的-0的补码来表示-128, 所以-128并没有原码和反码表示.(对-128的补码表示[1000 0000]补算出来的原码是[0000 0000]原, 这是不正确的)使用补码, 不仅仅修复了0的符号以及存在两个编码的问题, 而且还能够多表示一个最低数. 这就是为什么8位二进制, 使用原码或反码表示的范围为[-127, +127], 而使用补码表示的范围为[-128, 127].因为机器使用补码, 所以对于编程中常用到的32位int类型, 可以表示范围是: [-231, 231-1] 因为第一位表示的是符号位.而使用补码表示时又可以多保存一个最小值.四原码, 反码, 补码再深入计算机巧妙地把符号位参与运算, 并且将减法变成了加法, 背后蕴含了怎样的数学原理呢? 将钟表想象成是一个1位的12进制数. 如果当前时间是6点, 我希望将时间设置成4点, 需要怎么做呢?我们可以:1. 往回拨2个小时: 6 - 2 = 42. 往前拨10个小时: (6 + 10) mod 12 = 43. 往前拨10+12=22个小时: (6+22) mod 12 =42,3方法中的mod是指取模操作, 16 mod 12 =4 即用16除以12后的余数是4.所以钟表往回拨(减法)的结果可以用往前拨(加法)替代!现在的焦点就落在了如何用一个正数, 来替代一个负数. 上面的例子我们能感觉出来一些端倪, 发现一些规律. 但是数学是严谨的. 不能靠感觉.首先介绍一个数学中相关的概念: 同余同余的概念两个整数a,b,若它们除以整数m所得的余数相等,则称a,b对于模m同余记作a ≡ b (mod m)读作 a 与 b 关于模 m 同余。

计算机基础理论:原码、反码、补码、移码

计算机基础理论:原码、反码、补码、移码

计算机基础理论:原码、反码、补码、移码计算机基础理论:原码、反码、补码、移码(2009-04-23 00:02:36)一、标准理论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 ≤ 02、补码的定义①小数补码的定义[X]补=X 0≤X <1 2+ X-1 ≤ X <例如: X=+0.1011, [X]补= 01011 X=-0.1011, [X]补= 10101②整数补码的定义[X]补=X 0≤X <2n 2n+1+X- 2n≤ X< 03、反码的定义①小数反码的定义[X]反=X 0≤X <1 2-2n-1-X-1 <X ≤例如: X=+0.1011 [X]反= 01011X=-0.1011 [X]反= 10100 ②整数反码的定义[X]反=X 0≤X <2n 2n+1-1-X- 2n< X≤ 04.移码:移码只用于表示浮点数的阶码,所以只用于整数。

①移码的定义:设由1位符号位和n位数值位组成的阶码,则 [X]移=2n + X -2n≤X ≤ 2n例如: X=+1011 [X]移=11011 符号位“1”表示正号X=-1011 [X]移=00101 符号位“0”表示负号②移码与补码的关系: [X]移与[X]补的关系是符号位互为反码,例如: X=+1011 [X]移=11011 [X]补=01011X=-1011 [X]移=00101 [X]补=10101③移码运算应注意的问题:◎对移码运算的结果需要加以修正,修正量为2n,即对结果的符号位取反后才是移码形式的正确结果。

◎移码表示中,0有唯一的编码——1000...00,当出现000 (00)时(表示-2n),属于浮点数下溢。

二、补码加、减运算规则1、运算规则[X+Y]补= [X]补+ [Y]补[X-Y]补= [X]补+ [-Y]补若已知[Y]补,求[-Y]补的方法是:将[Y]补的各位(包括符号位)逐位取反再在最低位加1即可。

原码、反码、补码详解

原码、反码、补码详解

原码、反码、补码详解⼀、机器数和真值 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 第⼀位是符号位. 因为第⼀位是符号位, 所以8位⼆进制数的取值范围就是:[1111 1111 , 0111 1111] 即[-127 , 127] 原码是⼈们最容易理解和计算的表达⽅式。

2、反码 反码的表⽰⽅法: 正数的反码就是其本⾝。

负数的反码是在其原码的基础上,符号位不变,其余各个位取反。

例如:[+1] = [00000001]原 = [00000001]反[-1] = [10000001]原 = [11111110]反 如果⼀个反码表⽰的是负数,⼈们⽆法直观的看出来它的数值,通常要转换为原码再计算。

原码、反码、补码

原码、反码、补码

原码、反码、补码原码是什么? 原码就是早期⽤来表⽰数字的⼀种⽅式: ⼀个正数,转换为⼆进制位就是这个正数的原码。

负数的绝对值转换成⼆进制位然后在⾼位补1就是这个负数的原码,说的更通俗点,负数的原码就是⾼位为1的对应正数的原码。

举例说明: int类型的 3 的原码是 11B(B表⽰⼆进制位),在32位机器上占四个字节,那么⾼位补零就得: 00000000 00000000 00000000 00000011 int类型的 -3 的绝对值的⼆进制位就是上⾯的 11B 展开后⾼位补零就得: 10000000 00000000 00000000 00000011 但是原码有⼏个缺点,零分两种 +0 和 -0 。

很奇怪是吧!还有,在进⾏不同符号的加法运算或者同符号的减法运算的时候,不能直接判断出结果的正负。

你需要将两个值的绝对值进⾏⽐较,然后进⾏加减操作,最后符号位由绝对值⼤的决定。

于是反码就产⽣了。

反码是什么? 正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反 举例说明: int类型的 3 的反码是 00000000 00000000 00000000 00000011 和原码⼀样没什么可说的 int类型的 -3 的反码是 11111111 11111111 11111111 11111100 除开符号位所有位取反 解决了加减运算的问题,但还是有正负零之分,然后就到补码了 补码是什么? 正数的补码与原码相同,负数的补码为其原码除符号位外所有位取反(得到反码了),然后最低位加1. 还是举例说明: int类型的 3 的补码是: 00000000 00000000 00000000 00000011 int类型的 -3 的补码是 11111111 11111111 1111111 11111101 就是其反码加1最后总结⼀下: 正数的反码和补码都与原码相同。

负数的反码为对该数的原码除符号位外各位取反。

关于原码反码和补码的解释

关于原码反码和补码的解释

原码、补码和反码(1)原码表示法原码表示法是机器数的一种简单的表示法。

其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。

设有一数为x,则原码表示可记作〔x〕原。

例如,X1= +1010110X2= 一1001010其原码记作:〔X1〕原=[+1010110]原=01010110〔X2〕原=[-1001010]原=11001010原码表示数的范围与二进制位数有关。

当用8位二进制来表示小数原码时,其表示范围:最大值为0.1111111,其真值约为(0.99)10最小值为1.1111111,其真值约为(一0.99)10当用8位二进制来表示整数原码时,其表示范围:最大值为01111111,其真值为(127)10最小值为11111111,其真值为(-127)10在原码表示法中,对0有两种表示形式:〔+0〕原=00000000[-0] 原=10000000(2)补码表示法机器数的补码可由原码得到。

如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。

设有一数X,则X的补码表示记作〔X〕补。

例如,[X1]=+1010110[X2]= 一1001010[X1]原=01010110[X1]补=01010110即[X1]原=[X1]补=01010110[X2] 原= 11001010[X2] 补=10110101+1=10110110补码表示数的范围与二进制位数有关。

当采用8位二进制表示时,小数补码的表示范围:最大为0.1111111,其真值为(0.99)10最小为1.0000000,其真值为(一1)10采用8位二进制表示时,整数补码的表示范围:最大为01111111,其真值为(127)10最小为10000000,其真值为(一128)10在补码表示法中,0只有一种表示形式:[+0]补=00000000[+0]补=11111111+1=00000000(由于受设备字长的限制,最后的进位丢失)所以有[+0]补=[+0]补=00000000(3)反码表示法机器数的反码可由原码得到。

计算机原理(原码、反码、补码)

计算机原理(原码、反码、补码)

计算机原理- 整数的补码,原码, 反码解释一:对于整数来讲其二进制表示没有符号位.一个字节的表示范围为00000000-11111111,由此可见一个字节的整数表示范围为[0,255=2^8 - 1]。

对于整数来讲,其二进制表示中存在一个符号位.先来看一下下面几个定义:1:在计算机中,负数以其正值的补码形式表达。

正数即在符号位补0.2:原码:一个整数,按照绝对值大小转换成的二进制数,称为原码。

3:反码:将二进制数按位取反,所得的新二进制数称为原二进制数的反码。

4:补码: 反码+1由以上可以得到.计算机储存有符号的整数时,是用该整数的补码进行储存的,0的原码、补码都是0;正数的原码、补码可以特殊理解为相同;负数的补码是它的反码加1。

范围: 正数[00000000 - 01111111] 即[0, 2^7 - 1]。

负数[10000000 - 11111111] 。

范围说明. 11111111 - 1 = 11111110,取反=00000001 即是-1. 10000000 -1 = 01111111,取反=10000000, 即是-128. 因此有一个有符号二进制表示范围是从[-128-127].解释二:大家都知道数据在计算机中都是按字节来储存了,1个字节等于8位(1Byte=8bit),而计算机只能识别0和1这两个数,所以根据排列,1个字节能代表256种不同的信息,即2^8(0和1两种可能,8位排列),比如定义一个字节大小的无符号整数(unsigned char),那么它能表示的是0~255(0~2^8 -1)这些数,一共是256个数,因为,前面说了,一个字节只能表示256种不同的信息。

别停下,还是一个字节的无符号整数,我们来进一步剖析它,0是这些数中最小的一个,我们先假设它在计算机内部就用8位二进制表示为00000000(从理论上来说也可以表示成其他不同的二进制码,只要这256个数每个数对应的二进制码都不相同就可以了),再假设1表示为00000001,2表示为00000010,3表示为00000011,依次类推,那么最大的那个数255在8位二进制中就表示为最大的数11111111,然后,我们把这些二进制码换算成十进制看看,会发现刚好和我们假设的数是相同的,而事实上,在计算机中,无符号的整数就是按这个原理来储存的,所以告诉你一个无符号的整数的二进制码,你就可以知道这个数是多少,而且知道在计算机中,这个数本身就是以这个二进制码来储存的。

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

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或1.0…0。

2. 整数原码表示法整数原码的定义如下:例如:X=+1101时,根据以上公式可得[X]原=01101;X=-1101时,根据以上公式可得[X]原=24-(-1101)=10000+1101=11101当用8位二进制来表示整数原码时,其表示范围为:最大值为01111111,其真值为(127)10 ;最小值为11111111,其真值为(-127)10 。

同样,整数“0”的原码也有两种形式,即00…0和10…0。

2.2.3 反码用反码表示带符号的二进制数时,符号位与原码相同,即用0表示正,用1表示负;数值位与符号位相关,正数反码的数值位和真值的数值位相同;而负数反码的数值位是真值的数值位按位变反。

1. 小数反码表示法设二进制小数X=±0.x1x2…xm,则其反码定义为:例如,X=+0.1011时,根据以上公式可得[X]反=0.1011;当X=-0.1011时,根据以上公式可得[X]反=2-2-4+X=10.0000-0.0001-0.1011=1.0100。

根据定义,小数“0”的反码有两种表示形式,即0.0…0和1.1…1。

2. 整数反码表示法设二进制整数X=±Xn-1Xn-2…X0,则其反码定义为:例如,X=+1001时,根据以上公式可得[X]反= 01001;当X=-1001时,根据以上公式可得[X]反= (25-1)+X= (100000-1)+(-1001)= 11111-1001=10110 同样,整数“0”的反码也有两种形式,即00…0和11…1。

采用反码进行加、减运算时,无论进行两数相加还是两数相减,均可通过加法实现。

加、减运算规则如下:[X1+X2]反=[X1]反+[X2]反[X1-X2]反=[X1]反+[-X2]反运算时符号位和数值位一样参加运算。

当符号位有进位时,应将进位加到运算结果的最低位,才能得到最后结果。

2.2.4 补码用补码表示带符号的二进制数时,符号位与原码、反码相同,即用0表示正,用1表示负;数值位与符号位相关,正数补码的数值位与原码、反码相同。

而负数补码的数值位是真值的数值位按位变反,并在最低位加1。

1. 小数补码的定义设二进制小数X=±0.X-1X-2…X-m,则其补码定义为:例如,X= + 0.1011时,根据以上公式可得[X]补= 0.1011;X = - 0.1011时,根据以上公式可得[X]补= 2 + X = 10.0000 - 0.1011 = 1.0101小数“0”的补码只有一种表示形式,即0.0…0。

2. 整数补码表示法设二进制整数X=±Xn-1Xn-2…X0,则其补码定义为:例如,X = +1010时,根据以上公式可得[X]补= 01010;X = -1010时,根据以上公式可得[X]补= 25+ X = 100000-1010 = 10110。

同样,整数“0”的补码也只有一种表示形式,即00…0。

采用补码进行加、减运算时,可以将加、减运算均通过加法实现,运算规则如下:[X1 + X2]补=[X1]补+[X2]补[X1 - X2]补=[X1]补+[-X2]补运算时,符号位和数值位一样参加运算,若符号位有进位产生,则应将进位丢掉后才得到正确结果。

例如,若X1 = -1001,X2 = +0011,则采用补码求X1-X2的运算如下:[X1-X2]补=[X1]补+[-X2]补= 10111+11101。

即:[X1-X2]补= 10100 。

因符号位为1,表示是负数,故X1-X2 = -11002.2.5 模“模”是指一个计量系统的计数范围。

如时钟中的一个小时就是60分钟,这个60分钟就是“模”。

计算机也可以看成一个计量机器,它也有一个计量范围,即都存在一个“模”。

表示n位的计算机计量范围是0~2n-1,模=2n。

即n位二进制所能表示的无符号整数的范围:0≤x≤2n-1;n位二进制所能表示的有符号整数的范围:-2n-1+1≤x≤2n-1-1;n位二进制补码所能表示的数值范围为:-2n-1≤X≤+2n-1-1。

“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的余数。

任何有模的计量器,均可化减法为加法运算。

对于计算机,模也就是相应位数寄存器所能表示的最大数再加1。

如8位寄存器所能存储的数是11111111=255,这样8位寄存器的模就等于255+1=256。

2.2.6 BCD码、阶码与移码1. BCD码BCD编码将一个字节的8个位拆分成高4位和低4位两个部分,也就是说一个字节能存储两个数字。

所以BCD的编码过程就是将数字压缩的过程,将两个字节的数字压缩成一个字节。

反之,解码就是把一个字节的数字拆分为两个数字单独存放(大部分的处理都是按字节处理的)。

2. 阶码对于任意一个二进制数n,可用N=S x 2P表示,其中S为尾数,P为阶码,2为阶码的底,P、S都用二进制数表示,S表示N的全部有效数字,P指明小数点的位置。

3. 移码浮点数的阶码表示指数大小,有正有负,为避开阶码的符号,对每个阶码都加上一个正的常数(称偏移常数),使能表示的所有阶码都为正整数,变成“偏移”了的阶码,又称“增码”。

2.3 二进制的运算2.3.1 二进制的四则运算二进制数与十进制一样,同样可以进行加、减、乘、除四则运算。

其算法规则如下:加运算:0+0=0,0+1=1,1+0=1,1+1=10减运算:1-1=0,1-0=1,0-0=1,0-1=1乘运算:0*0=0,0*1=0,1*0=0,1*1=1除运算:二进制只有两个数(0,1)具体的四则运算方法参见书本。

2.3.2 补码运算补码的加法运算规则是:[X+Y]补= [X ]补+[Y]补该式表明,当有符号的两个数采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算(若符号位有进位,则丢掉),结果为两数之和的补码形式。

例如用补码进行下列运算:(+33)+(+15);(+33)+(-15),最终的结果分别是[+48]补和[+18] 补。

补码的减法运算规则是:[X-Y]补=[X]补+[-Y]补该式表明,求[X-Y]补可以用[X]补与[-Y]补相加来实现。

[-Y]补是对减数进行求负操作。

一般称已知[Y]补求得[-Y]补的过程叫变补或求负。

已知[+Y]补求[-Y]补的规则是全部位(含符号位)按位取反后再加1。

具体的补码计算步骤参见书中介绍。

2.3.3 二进制的逻辑运算二进制的逻辑运算有“与”、“或”、“非”和“异或”四种。

1. “与”运算(AND)“与”运算又称逻辑乘,用符号“.”或“∧”来表示。

运算规则如下:0∧0 = 0 0∧1 = 0 1∧0 = 0 1∧1 = 1即当两个参与运算的数的对应码位中有一个数为0,则运算结果为0,只有两码位对应的数都为1结果才为1。

这与前面介绍的二进制乘法运算是一样的。

2. “或”运算(OR)“或”运算又称逻辑加,用符号“+”或“∨”表示。

运算规则如下:0∨0 = 0 0∨1 = 1 1∨0 = 1 1∨1 = 1即当两个参与运算数的相应码位只要有一个数为1,则运算结果为1,只有两码位对应的数均为0,结果才为0。

如“10111101”进行“非”运算后就得到“01000010”,对比相应位即可验证以上运算规则了。

3. “非”运算(NOT)“非”运算实现逻辑否定,即进行求反运算,非运算规则:0 = 1,1 = 0。

注意“非”运算只是针对一个数所进行的“运算”,这与前面的“与”和“或”运算不一样。

它的实质意义就是取反。

如“10111101”进行“非”运算后就得到“01000010”,对比相应位即可验证以上运算规则了。

4. “异或”运算(XOR)“异或”运算用符号“⊕”来表示。

其运算规则如下:0⊕0 = 0;0 ⊕1 = 1;1 ⊕0 = 1;1 ⊕1 = 0 。

即当两个参与运算的数取值相异时,运算结果为1,否则为0。

下面两图是两个二进制数异或运算过程。

相关文档
最新文档