精华内容
下载资源
问答
  • 原码:符号位为0表示正数,为1表示负数,数值部分用二进制数的绝对值表示方法称为原码表示法,通常用[X]原表示X的原码。 反码:正数的反码与原码相同,负数的反码是符号位不变,数值位逐位取反。 补码:正数的补码...

    原码:符号位为0表示正数,为1表示负数,数值部分用二进制数的绝对值表示的方法称为原码表示法,通常用[X]原表示X的原码。
    反码:正数的反码与原码相同,负数的反码是符号位不变,数值位逐位取反。
    补码:正数的补码与其原码相同;负数的补码是符号位不变,数值位逐位取反(即求其反码),然后在最低位加1。
    移码也称为增码或偏码,常用于表示浮点数中的阶码。移码可由补码求得,只要把补码的符号位取反就得到了移码。
    原码:小数:x=+0.0000 [x]原=0.0000
    x=-0.0000 [x]原=1.0000
    整数:x=+0 [x]原=0,0000
    X=-0 [x]原=1,0000
    反码:x=+0 [x]反=0,0000
    X=-0 [x]反=1,1111
    x=+0.0000 [x]反=0.0000
    x=-0.0000 [x]反=1.1111
    补码:x=+0 [x]补=0,0000
    X=-0 [x]补=0,0000
    x=+0.0000 [x]补=0.0000
    x=-0.0000 [x]补=0.0000
    移码:x=+0 [x]移=1,0000
    X=-0 [x]移=1,0000
    x=+0.0000 [x]移=1.0000
    x=-0.0000 [x]移=1.0000

    展开全文
  • 计算机数值的三种表示方法详解 原码 反码 补码 最近学习软件评测师的知识 其中涉及到计算机的原码 反码和补码等知识 通过网上查阅资料 进行了深入学习 分享给大家 本文主要从以下几点进行 介绍 如何计算原码 ...

    计算机中数值的三种表示方法详解 原码 反码 补码 最近在学习软件评测师的知识 其中涉及到计算机的原码 反码和补码等知识 通过网上查阅资料 进行了深入学习 分享给大家 本文主要从以下几点进行 介绍 如何计算原码 反码 补码 为何要使用反码和补码 希望本文对大家 学习计算机基础有所帮助 一 机器数和真值 在学习原码 反码和补码之前 需要先了解机器数和真值的概念 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 二 原码 反码 补码的基础概念和计算方法 计算机中的符号数有三种表示方法 即原码 反码和补码 三种表示方法均有 符号位和数值位两部分 符号位都是用 0 表示 正 用 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 补 对于负数 补码表示方式也是人脑无法直观看出其数值的 通常也需要转换成原 码在计算其数值 简单总结以下 反码和补码的表示方式以及计算方法 对于正数 三种编码方式的结果都相同 正整数的原码 反码 补码完全一样 即符号位固定为 0 数值位相同 1 00000001 原 00000001 反 00000001 补 对于负数 三种编码方式则完全不同 负整数的符号位固定为 1 由原码变为补码时 规则如下 1 原码符号位 1 不变 整数的每一位二进制数位求反 得到反码 2 反码符号位 1 不变 反码数值位最低位加 1 得到补码 1 10000001 原 11111110 反 11111111 补 可见原码 反码和补码是完全不同的 三 为何要使用原码 反码和补码 既然原码才是被人脑直接识别并用于计算表示方式 为何还会有反码和补 码呢 在计算机系统中 数值一律用补码来表示和存储 原因在于 使用补码 可以将符号位和数值域统一处理 同时 加法和减法也可以统一处理 此外 补码与原码相互转换 其运算过程是相同的 不需要额外的硬件电路 下面以 一些例子进行详细介绍 人脑可以知道第一位是符号位 在计算的时候我们会根据符号位 选择对真值区 域的加减 真值的概念在本文最开头 但是对于计算机 加减乘数已经是最基 础的运算 要设计的尽量简单 计算机辨别 符号位 显然会让计算机的基础电路 设计变得十分复杂 于是人们想出了将符号位也参与运算的方法 我们知道 根 据运算法则减去一个正数等于加上一个负数 即 1 1 1 1 0 所以机 器可以只有加法而没有减法 这样计算机运算的设计就更简单了 于是人们开始探索 将符号位参与运算 并且只保留加法的方法 首先来看原码 计算十进制的表达式 1 1 0 1 1 1 1 00000001 原 10000001 原 10000010 原 2 如果用原码表示 让符号位也参与计算 显然对于减法来说 结果是不正确的 这 也就是为何计算机内部不使用原码表示一个数 为了解决原码做减法的问题 出现了反码 计算十进制的表达式 1 1 0 1 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 因为第一位表示的是符号位 而使用补码表示时又可以多保存一个 最小值 四 原码 反码 补码原理 模的概念 计算机巧妙地把符号位参与运算 并且将减法变成了加法 背后蕴含了怎样的数 学原理呢 模的概念可以帮助理解补数和补码 模 是指一个计量系统的计数范围 如 时钟等 计算机也可以看成一个计量机器 它也有一个计量范围 即都存在一 个 模 例如 时钟的计量范围是 0 11 模 12 表示 n 位的计算机计量 范围是 0 2 n 1 模 2 n 模 实质上是计量器产生 溢出 的量 它的值在计量器上表示不出来 计 量器上只能表示出模的余数 任何有模的计量器 均可化减法为加法运算 假设当前时针指向 6 点 而准确时间是 4 点 我希望将时间设置成 4 点 需要 怎么做呢 调整时间可有以下两种拨法 一种是倒拨 2 小时 即 6 4 2 另一 种是顺拨 10 小时 6 10 12 4 4 1 往回拨 2 个小时 6 2 4 2 往前拨 10 个小时 6 10 mod 12 4 3 往前拨 10 12 22 个小时 6 22 mod 12 4 2 3 方法中的 mod 是指取模操作 16 mod 12 4 即用 16 除以 12 后的余数是 4 所以钟表往回拨 减法 的结果可以用往前拨 加法 替代 现在的焦点就落在了如何用一个正数 来替代一个负数 上面的例子我们能感觉 出来一些端倪 发现一些规律 但是数学是严谨的 不能靠感觉 首先介绍一个数学中相关的概念 同余 两个整数 a b 若它们除以整数 m 所得的余数相等 则称 a b 对于模 m 同余 记作 a b mod m 读作 a 与 b 关于模 m 同余 举例说明 4 mod 12 4 16 mod 12 4 28 mod 12 4 所以 4 16 28 关于模 12 同余 负数取模 正数进行 mod 运算是很简单的 但是负数呢 下面是关于 mod 运算的数学定义 上面是截图 取下界 符号找不到如何输入 word 中粘贴过来后乱码 下面是使 用 L 和 J 替换上图的 取下界 符号 x mod y x y L x y J 上面公式的意思是 x mod y 等于 x 减去 y 乘上 x 与 y 的商的下界 以 3 mod 2 举例 3 mod 2 3 2xL 3 2 J 3 2xL 1 5J 3 2x 2 3 4 1 所以 2 mod 12 12 2 10 4 mod 12 12 4 8 5 mod 12 12 5 7 再回到时钟的问题上 回拨 2 小时 前拨 10 小时 回拨 4 小时 前拨 8 小时 回拨 5 小时 前拨 7 小时 注意 这里发现的规律 结合上面学到的同余的概念 实际上 2 mod 12 10 10 mod 12 10 2 与 10 是同余的 4 mod 12 8 8 mod 12 8 4 与 8 是同余的 距离成功越来越近了 要实现用正数替代负数 只需要运用同余数的两个定理 反身性 a a mod m 这个定理是很显而易见的 线性运算定理 如果 a b mod m c d mod m 那么 1 a c b d mod m 2 a c b d mod m 所以 7 7 mod 12 2 10 mod 12 7 2 7 10 mod 12 现在我们为一个负数 找到了它的正数同余数 但是并不是 7 2 7 10 而是 7 2 7 10 mod 12 即计算结果的余数相等 接下来回到二进制的问题上 看一下 2 1 1 的问题 2 1 2 1 0000 0010 原 1000 0001 原 0000 0010 反 1111 1110 反 先到这一步 1 的反码表示是 1111 1110 如果这里将 1111 1110 认为是原码 则 1111 1110 原 126 这里将符号位除去 即认为是 126 发现有如下规律 1 mod 127 126 126 mod 127 126 即 1 126 mod 127 2 1 2 126 mod 127 2 1 与 2 126 的余数结果是相同的 而这个余数 正式我们的期望的计算结果 2 1 1 所以说一个数的反码 实际上是这个数对于一个膜的同余数 而这个膜并不是我 们的二进制 而是所能表示的最大值 这就和钟表一样 转了一圈后总能找到在 可表示范围内的一个正确的数值 而 2 126 很显然相当于钟表转过了一轮 而因为符号位是参与计算的 正好和 溢出的最高位形成正确的运算结果 既然反码可以将减法变成加法 那么现在计算机使用的补码呢 为什么在反码 的基础上加 1 还能得到正确的结果 2 1 2 1 0000 0010 原 1000 0001 原 0000 0010 补 1111 1111 补 如果把 1111 1111 当成原码 去除符号位 则 0111 1111 原 127 其实 在反码的基础上 1 只是相当于增加了膜的值 1 mod 128 127 127 mod 128 127 2 1 2 127 mod 128 此时 表盘相当于每 128 个刻度转一轮 所以用补码表示的运算结果最小值和 最大值应该是 128 128 但是由于 0 的特殊情况 没有办法表示 128 所以补码的取值范围是 128 127

    展开阅读全文

    展开全文
  • 《计算机原码反码补码_0》由会员分享,可在线阅读,更多相关《计算机原码反码补码_0(3页珍藏版)》请人人文库网上搜索。1、计算机原码反码补码数学是...计算机,负数的二进制有3种表示方法:原码、反码和补...

    《计算机原码反码补码_0》由会员分享,可在线阅读,更多相关《计算机原码反码补码_0(3页珍藏版)》请在人人文库网上搜索。

    1、计算机原码反码补码在数学中是将正号+ 负号- 放在绝对值前边表示该数是正数还是负数的,计算机只能识别0和1,使用的是二进制。计算机中就用一个数的最高位作为符号位,并用0表示正数,1表示负数。这样数的符号也可以用数字表示了。在计算机中,负数的二进制有3种表示方法:原码、反码和补码。任何正数的原码反码和补码形式完全相同,而负数则有各种不同的表示形式。 那么在计算机中,我们用二进制来表示数,所有的数可以分成两部分。一部分是符号,另一部分是数值,所以用二进制表示出来的数也就有了符号位和数值位之分。如果只表示一个数,我们称之为:真值;既有数又有符号的我们称之为机器码。 正整数: 原码,补码,反码的符号位。

    2、固定为0,数值位都是真值。所以一个正整数的原码,补码,反码是相同的。 负整数: 原码,补码,反码的符号位固定为1不变,数值位不相同。 原码的数值位是真值; 反码:原码数值位的每一位二进制数位求反得到; 补码:反码数值位最低位加1得到。 一原码 8 原码:0000,1000 -8 原码:1 000,1000 二反码 8 反码:0 000,1000 -8 反码:1 111,0111 三补码 8 补码:0 000,1000 -8 补码:1 111,1000 为什么要用到原码、反码、补码 原码求和运算的问题: 假设字长为8bits 十进制 (1) 10 - (1)10 = (1)10 + (-1)10。

    3、 = (0)10 按照原码的表示规则,十进制的1 的原码是 00000001, 十进制的-1 原码是 10000001 二进制 (0 0000001)原 + (1 0000001)原 = (1 0000010)原 = ( -2 ) 显然不正确。 当1-1 就相当于 1+(-1) 执行二进制运算时结果为10000010 是-2 结果是错误的! 解决问题方案: 在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上。对除符号位外的其余各位逐位取反就产生了反码。反码的取值空间和原码相同且一一对应。 反码的减法运算: 十进制: (1)10 - (2)10 = (1)10 + (-2。

    4、)10 = (-1)10 二进制: (0 0000001)反 + (1 1111101)反 = (11111110)反 = (-1) 正确。 反码求和运算的问题: 十进制: (1)10 - (1)10 = (1)10 + (-1)10 = (0)10 二进制:(0 0000001)反 + (1 1111110)反 = (1 1111111)反 = ( -0 ) 有问题。 问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的。 补码求和运算: 负数的补码就是对反码加一,而正数的补码不变,正数的原码反码补码是一样的。 十进制: (1)10 - (1)10 = (1)10 + (-1)10 = (0)10 二进制:(0 0000001)补 + (1 1111111)补 = (0 0000000)补 = ( 0 ) 正确。 十进制:(1)10 - (2)10 = (1)10 + (-2)10 = (-1)10 二进制:(00000001)补 + (11111110)补 = (11111111)补 = (-1) 正确。 所以补码的设计目的是: 使符号位能与有效值部分一起参加运算,从而简化运算规则。补码机器数中的符号位,并不是强加上去的,是数据本身的自然组成部分,可以正常地参与运算。 使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计。。

    展开全文
  • 反码

    2021-03-03 16:02:02
    以上方法较为繁琐,不过是最为正确的方法,对于求原码的反码还有一些比较简便的方法,小编这里告诉大家。 对于整数而言,无论是其原码,还是其反码,都是本身的二进制数,当然这里是正整数。而负整数的反码则是...

    反码表示法,如果机器字长为n,则反码表示如下:

    若X是整数
    [X]反=X,0≤X≤2的n-1次 -1;
    [X]反=2的n次 -1 ,-(2的n-1次 + X) ≤ X ≤0
    若X是小数
    [X]反=X,0≤X<1;
    [X]反=2- 2的-(n-1)次 +X ,- 1< X ≤0

    以上方法较为繁琐,不过是最为正确的方法,对于求原码的反码还有一些比较简便的方法,小编在这里告诉大家。

    对于整数而言,无论是其原码,还是其反码,都是本身的二进制数,当然这里是正整数。而负整数的反码则是其正整数原码的所有位(包括符号位),取反即可。
    小数求反码也是如此

    -若机器字长n=8位,分别给出下列反码表示。

    [+1]反=0 0000001
    [-1]反=1 1111110
    [+127]反=0 1111111
    [-127]反=1 0000000
    [+45]反=0 0101101
    [-45]反=1 1010010
    [+0.5]反=0 1000000
    [-0.5]反=1 0111111

    数值0的反码表示有两种形式
    [+0]反=0 0000000
    [-0]反=1 1111111

    以上便是求解反码的一些方法,如果有什么问题,欢迎大家指正!!!

    展开全文
  • 计算机数值的三种表示方法详解原码,反码,补码最近学习软件评测师的知识,其中涉及到计算机的原码,反码和补码等知识.通过网上查阅资料,进行了深入学习,分享给大家。本文主要从以下几点进行介 绍:如何计算...
  • 陈独秀的秘密所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0表示正,“1”表示负,其余...1、原码、反码和补码的表示方法(1) 原码:数值前直接加一符号位的表示法。例如: 符号位 数值位[+7...
  • 2.二进制数分为哪两种? 二进制数分为两种: 无符号二进制,只能存储正整数 有符号二进制,可以存储正数和负数,最高位为符号位,0表正,1表负数 正数5表示为 00000000 00000000 00000000 00000101 负数­-5表示为 ...
  • 计算机数据的表示方法计算机是一种电子设备,由复杂的电子元器件组合而成电子元器件有带电和不带电两种状态,通常我们将带电状态表示为数值1,不带电状态表示为数值0,多个这样的元器件的组合可以表示更多状态,也就是...
  • 原码、补码和反码 ...其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]原。  例如,X1= +1010110  X2= 一1001010  其原码记作:  [X1]原=[+1
  • 反码的实质是一特殊的补码,其特殊之处在于反码的模比补码的模小一个最低位上的1。 反码的定义: ü 纯小数:0 ü 纯整数:0 根据反码的定义可得反码的求法:若x>=0,则使符号位为0,数值部分与x...
  • 计算机是以二进制形式表示的。数分为有符号数和无符号数。原码、反码、补码都是有符号定点数的表示方法。一个有符号定点数的最高位为符号位,0是正,1是副。以下都以8位整数为例,原码就是这个数本身的二进制...
  • 原码:将一个整数,转换成二进制,就是其原码。...负数的反码是将原码,除符号位以外,每一位取反。  如单字节的5的反码为:0000 0101;-5的反码为1111 1010。  补码:正数的补码就是其原码;负数的反码+1就
  • 前言:学习计算机的同学,底层硬件计算过程会遇到原码、反码、补码。很多关于计算机的书籍都介绍原码、反码、补码的表示方法,及...我们知道数值计算机中表示形式为机器数,由0和1组成,计算机只能识别0和1,使
  • 原码、反码和补码的表示范围

    千次阅读 2017-01-03 14:32:09
    小数: x0.x1x2x3…xn,其中x0是符号位  整数:x0x1x2x3…xn,其中x0是符号位 首先形成的概念是:原码和反码小数表示的范围是一样的,仅仅是二进制...中间是+0,−0两种 x0x1x2x3…xn 原码整数,反码整数:−(2n−1)
  • 负数计算机如何表示? 举例来说,+8计算机中表示为二进制的1000,那么-8怎么表示呢? 很容易想到,可以将一个二进制位(bit)专门规定为符号位,它等于0时就表示正数,等于1时就表示负数。比如,8位机,...
  • int类型计算机内存总以补码形式存储 ...原码表示法数值前面前面有一位符号位(即最高位为符号位),正数该位为0,负数该位为1(0两种表示:+0和-0),其余位表示数值的大小。 反码:正数的反.
  • 0反码也有两种形式,即  [+0]反=00000000B  [- 0]反=11111111B  b. 8位二进制反码表示范围:-127~+127 补码  (3)   计算机数值就以补码形式存储,所以用补码进行运算的。 补码的...
  • 原文:https://www.php.cn/faq/465621.html计算机...推荐:《编程视频》计算机机器数的三种表示方法是原码、反码、补码。机器数是将符号"数字化"的数,是数字计算机的二进制表示形式。机器数有2个特点:一是符...
  • 机器数与编码 文章目录机器数与编码计算机&amp;amp;amp;amp;amp;quot;眼中&...的数字数字的“单位”小数点的“位置”带符号的整数整数的大小 ...计算机内数据和指令都是由晶体管和门电路等元件...就像黑客帝国世界
  • 一:对于正数,原码和反码,补码都是...移码就是将符号位取反的补码二:计算机,实际上只有加法运算,减法运算也要转换为加法运算,乘法转换为加法运算,除法转换为减法运算.三:计算机,对任意一个带有符号的二...
  • 计算机的原码反码补码移码原码数值 X 的原码记为 [X]原,如果机器字长为 n (即采用 n 个二进制位表示数据),则最高位是符号位,0 表示正号,1 表示负号,基余的 n~1 位表示数值的绝对值。数值零的原码表示两种...
  • 1、原码、反码与补码 原码:最高位为符号位,8位数表示的数据最大指为...反码:正数的反码是原码,负数的反码是原码除符号位外各位取反,8位数表示的数据最大值127=0b01111111,最小值为-127=0b10000000,数值范围-...
  • 原码表示采用最高位为符号位,正数为0,负数为1,原码表示范围为-127~127,0两种表示+0和-0 正数原码、反码、补码相同 负数反码为原码除符号位外取反;补码为反码的基础上加1。-128没有原码和反码,其补码为1000...
  • 机器数和真值学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数计算机的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,计算机用一个数的最高位存放符号, 正数为0, 负数为...
  • 计算机是以二进制形式表示的。 数分为有符号数和无符号数。 原码、反码、补码都是有符号定点数的表示方法。 一个有符号定点数的最高位为符号位,0是正,1是副。 以下都以8位整数为例, 原码就是这个数本身的二...
  • 为什么c语言int的表示范围是-32768~32767 这得从二进制的原码说起: 如果以最高位为符号位,二进制原码最大为...此时0两种表示方法,即正0和负0:0000000000000000=1000000000000000=0 所以,二进制原码表
  • 负数现代计算机里一般用补码表示(正数也是) 正数补码就是它的原码 负数补码: 最高位是符号位,其余位为对应整数的原码取反再+1 如:1000 0000还原为原码:最高位是1,表示负数,剩余的各位取反 111 1111 再...
  • 原码反码补码表示

    2014-04-05 15:09:20
    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请...一个数计算机的二进制表示形式
  • 原码:将一个整数,转换成二进制,就是其原码...负数的反码是将原码,除符号位以外,每一位取反。 如单字节的5的反码为:0000 0101;-5的反码为1111 1010。  补码:正数的补码就是其原码;负数的反码+1就是补码...
  • 好久没接触二进制的原码、补码、反码了,今天做剑指offer又遇到了,现在记录一下。 1.正数的原码=反码=补码。 ...(1)零分两种 +0 和 -0 (2)不便于加减运算,进行不同符号的加法运算或者同...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,352
精华内容 7,340
关键字:

在反码中两种0的表示方法