当前位置:首页 > 初赛 > 正文内容

信息学奥赛知识点(七)----原码补码反码

亿万年的星光4年前 (2021-01-28)初赛2165
一、数的原码、补码和反码

1.机器数与真值

在计算机中,表示数值的数字符号只有0和1两个数码,我们规定最
高位为符号位,并用0表示正数符号,用1表示负数符号。这样,机器中的数值和符号全“数码化”了。为了简化机器中数据的运算操作,人们采用了原码、补码、反码及移码等几种方法对数值位和符号位统一进行编码。为区别起见,我们将在机器中的这些编码表示成为机器 数(如10000001)。而将原来一般书写表示的数称为机器数的真值(如-0000001)。

2.原码表示法

原码表示法是一种简单的机器数表示法,即符号位和数值表示法。设x

为真值,则[x]原为机器数表示。

    例:设X=1100110,则[x]=01100110;

         X=-1100111,  则[x]=11100110;

3.反码表示法

正数的反码就是其真值本身,负数的反码,只需对符号位以外各位按位“求反”(0变1,1变0)即可。

    例:设X=1100110,则[x]=01100110;

         X=-1100111,  则[x]=10011000;

4.补码表示法

负数用补码表示时,可以把减法转化为加法。正数的补码就是其本身,负数的补码是符号位为1,数值各位取反(0变成1,1变成0),最低位加1。

    例:设X=1100110,则[x]=01100110;

         X=-1100111,  则[x]=10011001;

结论:


真值原码反码补码
正数0+本身0+本身0+本身
负数1+本身1+各位取反1+各位取反后最低位+1


注意:    真值0的原码和反码表示不唯一,而补码的表示是唯一的,而补码表示是唯一的,即:

[+0]=0000…0, [-0]=1000…0

[+0]=0000…0, [-0]=1111…1

[+0]补 = [-0]=000…0

5.编码及其表示范围

不同的编码表示的整数范围是这样的(已N位二进制位)

原码:0~2n-1(无符号),-2n-1 -1 ~ 2n-1 -1(有符号)

反码:-2n-1 -1 ~ 2n-1 -1(不存在无符号情况)

补码:-2n-1  ~ 2n-1 -1(不存在无符号)

补码表示的范围最大。现在以8位二进制为例说明如下:

原码:00000000 ~11111111  即:0~255(无符号)

      1111111~01111111    即-127~+127(有符号)

反码:10000000 – 01111111 即

    -127~+127 (因为1000000 的 值为-127,11111111 的值为-0)

补码:1000000~01111111 即

    -128 ~ +127 (因为1000000的值-128,1111111的值为-1)。

如果没有具体说明编码形式,则计算机中N位二进制无符号数的范围是0~2n-1-1;有符号数的范围-2n-1  ~ 2n-1 -1

以8位有符号整数为例子:

原码:若X为正数,则最高位(符号位)为0,其余按照二进制数排列;

若X为负数,则最高位为1,后面和正数原码一样。

例: +7:00000111, -7 : 10000111

        +0:00000000, -0 : 10000000

反码:若X为正数,则反码与原码相同

若X为负数,则将原码除符号位取反。

例: -7 : 11111000

补码:反码+1

例: -7 : 11111001

二、数的定点表示和浮点表示

在计算机中,小数点一般有两种表示法:

  • :小数点固定在某一个位置的定点表示法。(定点计算机)

  • :小数点的位置可任意移动的浮点表示法。(浮点计算机)

定点表示法:机器中所有数的小数点位置是固定不变的,因而小数点

就不必使用记号表示出来。实际上,小数点的位置可以固定在任意位置上。

浮点表示法:在数的定点表示法,由于数的表示范围较窄,常常不能

满足各种数值问题的需要。为了扩大数的表示范围,方便用户使用,有些计算机常次啊用浮点表示法。表示一个浮点数,要用两部分:位数和阶码。尾数用以表示数的有效数值;阶码用以表示小数点在该数中的位置。

    计算机多数情况下采用浮点数表示数值,它与科学计数法相似,把一个二进制数通过移动小数点位置表示成阶码尾码两部分。

                       N=2E*S

    其中:E为N的阶码,是有符号的整数;S为N的尾数,是数值的有效数字,一般规定二进制定点纯小数点形式。

    例如:1011101 B = 2+7 * 0.1011101,

         101.1101 B =  2+3 * 0.1011101,

          0.0101101 B =  2-1 * 0.1011101,

三、科学计数法

科学记数法是一种记数的方法。把一个数表示成a与10的n次幂相

乘的形式(1≤|a|<10,a不为分数形式,n为整数),这种记数法叫做科学记数法。当我们要标记或运算某个较大或较小且位数较多时,用科学记数法免去浪费很多空间和时间。

    19971400000000=1.99714×10^13。

计算器或电脑表达10的幂是一般是用E或e,也就是1.99714E13=19971400000000。


扫描二维码推送至手机访问。

版权声明:本文由青少年编程知识记录发布,如需转载请注明出处。

分享给朋友:

相关文章

信息学奥赛知识点(五)----进制转换

信息学奥赛知识点(五)----进制转换

一、进位计数制的基本概念将数字符号按排列成数位,并遵照某种由低到高的进位方式计数表述数值的方法,称为计数制。1.十进制十进制计数由0,1,2,3,4,5,6,7,8,9共10个数字符号组成。相同数字符...

信息学奥赛知识点(十二)----栈和队列

信息学奥赛知识点(十二)----栈和队列

一、栈栈是只能在某一端插入和删除的特殊线性表。用桶堆积物品,先堆进行的压在底下,随后一件一件往上堆。取走时,只能从上面一件一件取。堆和取都在顶部进行。底部一般是不动的。栈就是一种类似桶堆积物品的数据结...

信息学奥赛知识点(九)----因特网概述

英特网(Internet),它所采用的网络协议是TCP/IP协议。它是因特网的核心技术。TCP/IP协议,具体地说就是传输控制协议和网际协议。其中,TCP协议用于负责网上信息的正确传输,而IP协议则是...

NOIP2010年普及组初赛题目及答案解析

NOIP2010年普及组初赛题目及答案解析

单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案。)1.  2E+03 表示(D )A. 2.03      &n...

NOIP2009年普及组初赛题目及答案解析

NOIP2009年普及组初赛题目及答案解析

一、单项选择题(共20题,每题1.5分,共计30分。每题有且仅有一个正确答案。)1、 关于图灵机下面的说法哪个是正确的:( D)A.图灵机是世界上最早的电子计算机。B.由于大量使用磁带操作,图灵机运行...

信息学奥赛知识点(十)----计算机安全知识

计算机安全是中最重要的是存储数据安全,其面临的主要威胁包括:计算机病毒、非法访问、计算机电磁辐射、硬件损坏等。计算机病毒是附在计算机软件中的隐蔽的小程序,它和计算机其他程序一样,但会破坏正常的程序和数...