原码、反码、补码

发布时间 : 星期日 文章原码、反码、补码更新完毕开始阅读

在计算机中都用二进制数来表示数据.计算机中处理数据及运算都是用二进制的. 我们定义在计算机中表示的数叫做机器数; 而且我们人为的规定了机器数一般用8位二进制数来表示. (即一个机器数为一个字节) 而机器数我们又可以分为:原码、反码、补码。

1、原码

因为计算机中用二进制数表示,所以不是二进制的数必须先转化为二进制数.比如十进制数(-35)我们先要将数值35转为二进制数100011,而其中的符号”+”、”-”该怎么来表示?

我们知道在计算机中只有”0”和”1”能被计算机所识别,因此我们定义用”0”代表符号”+”;用”1”代表符号”-”. 这样我们就可以求出(-35)的机器数是:10100011

思考讨论:

为什么不是1100011而是10100011?

因为机器数是八位二进制数组成,我们求出来的不满八位,则我们需要在中间补足8位,才能形成一个机器数. 我们刚刚求出来的机器数10100011就是(-35)的原码

[-35]原码=10100011

原码的求法:

1、将数值部分转为二进制;

2、用”0”代替符号”+”;用”1”代替符号”-”,并且将符号位放在最高位; 3、假如符号位和二进制数组成达不到8位,我们将在中间加0,补足八位. 那+35的原码是多少?

[+35]原码=00100011

练习一:求原码.

(-101110)2; (+7)10; (-61)10

[-101110]原码=10101110; [+7]原码=00000111; [-61]原码=10111101;

2、反码

反码是相对原码而言的,求反码,首先要知道原码,求反码要分为两种情况。 (1)正数的时候; 反码=原码;

(2)负数的时候; 反码由原码转变而来,符号位不变,其余各位取反(即0、1互换) 举例:

[+35]反码=[+35]原码=00100011; [-35]反码=11011100;

练习二:求反码;

(-101110)2; (+7)10; (-61)10 学生上来做.

[-101110]反码=11010001; [+7]反码=00000111; [-61]反码=11000010;

3、补码

可得补码也是相对原码而言的,求补码是有反码演变而来的,且求补码也有两种情况,

情况一:正数 补码=反码=原码; 情况二:负数 补码=反码+1;

举例:

[+35]补码=[+35]反码=[+35]原码=00100011; [-35]补码=[-35]反码+1=11011100+1=11011101;

练习三:求补码

(-101110)2; (+7)10; (-61)10

[-101110]补码=[-101110]反码+1 =11010001+1 =11010010

[+7]补码=[+7]反码=[+7]原码=00000111

[-61]补码=[-61]反码+1 =11000010+1 =11000011

回顾求出原码、反码、补码的方法。 练习题。(历届高考题) 1、(2010年)十进制数-127转化成8位补码,正确的是(B) A、10000000 B、10000001 C、01111111 D、11111111 2、(2008年)十进制数-36转化成8位补码,正确的是(D) A、10100100 B、10100101 C、11011011 D、11011100 3、(2007年)求8位补码10110110所表示的十进制数是多少(B ) A、74 B、-74 C、10 D、-10

教师活动 学生活动 〖小结〗

本节课我们学习了机器数的概念,以及原码、反码、补码的求法。请同学们回去以后进行及时的复习,如有疑问请在课后及时与我交流。 〖作业〗

知识点拓展提升:

1、假如机器数字长为6位,如X=-1110,则X的补码[X]补码= 。 2、用八位二进制表示 X=+00000000

[X]原码= [X]反码= [X]补码= X=-00000000

[X]原码= [X]反码= [X]补码= 3、已知两个数X、Y的反码分别是[X]反码=01101010; [Y]反码=10111011;比较X、Y的大小。 4、已知八位机器数为11011011(最高位为符号位),则当它是原码、反码、补

码时表示的十进制真值分别是多少?

联系合同范文客服:xxxxx#qq.com(#替换为@)