原码、反码和补码

本文介绍了计算机中数值型数据的表示方式,包括定点数和浮点数,重点讲解了原码、反码和补码的概念。通过补码,可以将减法运算转化为加法运算,简化了计算机内部的处理。文中还探讨了浮点数的表示,以及定点数的加减法运算,并通过实例展示了不同码制的转换和溢出处理。此外,文章提到了补码在计算机算术运算中的重要性和在解决溢出问题中的作用。
摘要由CSDN通过智能技术生成

欢迎扫码关注微信公众号

 

资料来自百度文库:https://wenku.baidu.com/view/550e7af265ce0508763213b9.html

原码、反码和补码的概念

本节要求

掌握原码、反码、补码的概念

知识精讲

数值型数据的表示按小数点的处理可分为定点数浮点数;按符号位有原码、反码和补码三种形式的机器数。

一.计算机中数据的表示方法

1、数的定点与浮点表示

在计算机内部,通常用两种方法来表示带小数点的数,即所谓的定点数和浮点数。
    ①定点数:是小数点在数中的位置是固定不变的数,数的最高位为符号位,小数点可在符号位之后,也可在数的末尾,小数点本身不需要表示出来,它是隐含的。

    缺点:只有纯小数整数才能用定点数表示;
    ②浮点数:小数点在数中的位置是浮动的、不固定的数。

一般浮点数既有整数部分又有小数部分,通常对于任何一个二进行制数N,总可以表示成:

              N=±2P×S
    N、P、S均为二进制数,

为N的阶码,一般为定点整数,常用补码表示,阶码指明小数点在数据中的位置,它决定浮点的表示范围

 

为N的尾数,一般为定点小数,常用补码或原码表示,尾数部分给出了浮点数的有效数字位数,它决定 了浮点数的精度,且规格化浮点数0.5≤|S|<1

0.1B=( 1/2 )D              =( 2-1 )D

0.11B=(1/2 + 1/4 )D         =( 2-1 + 2-2 )D

0.111B=(1/2 + 1/4  + 1/8 )D  =( 2-1 + 2-2 + 2-3)D       ---------------------------

在计算机中表示一个浮点数其结构为:
                          阶码部分          尾数部分

阶符

阶数

尾符

尾数

Ef

E1E2…Em

Sf

S1S2…Sn

假设用八个二进制位来表示一个浮点数,且阶码部分占4位,其中阶符占一位;尾数部分占4位,尾符也占一位。

若现有一个二进制数N=(101100)2可表示为:2110×0.1011,则该数在机器内的表示形式为:

101100B=  10110B * (21)D

101100B=   1011B * (22)D

101100B=  101.1B * (23)D

101100B=  10.11B * (24)D

101100B=  1.011B * (25)D

101100B= 0.1011B * (26)D=0.1011B *  (2110)B

0

1

1

0

0

1

1

0

1

一个浮点形式的尾数S若满足0.5≤|S|<1,且尾数的最高位数为1,无无效的0,则该浮点数称为规格化数;规格化数可以提高运算的精度。

            S为原码表示,则 S1=1

规格化数

           S为补码表示    N为正数,则S1 =1

                           N为负数,则S1=0

    二、原码、反码和补码

1、机器数与真值

机器数:在计算机中数据和符号全部数字化,最高位为符号位,且用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

 

    2、原码、反码和补码的概念

1)概念

机器数 有原码、反码和补码三种表示方法。

 

原码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值