美文网首页
对原码,反码,补码的理解

对原码,反码,补码的理解

作者: 一场小龙卷风 | 来源:发表于2019-05-29 10:29 被阅读0次

对原码,反码,补码的理解

今日在对java的学习中,遇到进制转换的问题,发现有符号的数即负数的进制转换涉及到原码,反码,补码相关知识。所以经过查阅资料,琢磨,下面是我自己对原码,反码,补码的理解。

计算机就是通过处理数据,才实现出这么多功能。在日常使用中,无论是点击按钮,打开图片,播放视频,亦或是其他操作,本质上都是对数据进行处理,因为,这些图片,视频等其储存在计算机中就是由0和1组成的二进制数据形式,只不过含有其特殊的编码,归本溯源都是二进制格式。现在就简单的以数字为例。

人在日常生活中是使用十进制数的,在计算机中,将会把十进制转换成二进制数。是以补码的形式存储在计算机中。但在补码之前,还有原码,和反码。

原码:

是在最早期,以二进制表现数字的一种形式。

正数:十进制转换成二进制【十进制数除以2,一直到商为0,取其余数,就为二进制数】
负数:在计算机中,最小的存储单位是字节,一个字节是八位,所以规定最高位为正负的符号位,如果是正数,符号位为0,负数的符号位为1。所以,原码中负数的二进制数就是将此负数的绝对值的原码的最高位变为1。

十进制 二进制
42 0010 1010
-42 1010 1010
7 0000 0111
-7 1000 0111

但是这样的负数原码在计算时却出现问题,42+(-7)应该为35,使用此二进制数相加减,得到的结果为1011 0001,十进制是177.此时计算机中的计算是把-7的二进制数1000 0111当成正数135来进行计算的。所以原码中的负数并不符合要求,所以诞生了反码。

反码:

反码规定,最高位仍旧是符号位,正数的原码和反码相同,负数的反码是在此负数的原码基础上,除符号位,将其余各位取反。

十进制 二进制
42 0010 1010
-42 1101 0101
7 0000 0111
-7 1111 1000

但是反码也没有解决其计算问题,即42+(-7)=35,在二进制计算里,得到结果为0010 0010为34。42+(-42)=0的二进制也出现了问题,得到的结果不是0。所以出现了补码。

补码:

正数的补码和原码,反码一致。负数的补码就是在反码的基础上加1。

十进制 二进制
42 0010 1010
-42 1101 0110
7 0000 0111
-7 1111 1001

经过计算。42+(-7)=35,二进制计算结果为0010 0010 + 1 =0010 0011,十进制也为35。42+(-42)=0,二进制计算结果为0000 0000,十进制为0。这样补码就完美解决了正负数遇到的各种问题,所以计算机中存储数据都是以补码形式。

相关文章

  • 原码、反码、补码和移码

    书中关于原码、反码、补码和移码的定义如下(n是机器字长):原码: 反码: 补码: 移码: 原码, 反码, 补码的基...

  • 软件测评师做题技巧

    第一类补码,反码,原码 正数:原码=反码;补码=原码负数:反码=原码求反;补码=反码+1 第二类用例概率的计算 测...

  • 2018-10-22 Python31 原码、反码、补码

    原码、反码、补码 1)如何计算补码?规则: 正数:原码 = 反码 = 补码负数:反码 = 符号位不变,其他位取反补...

  • 计算机为什么要使用原码、反码、补码

    1. 什么是原码、反码、补码 先看一个例子: +1和-1的原码、反码、补码的表示 原码、反码、补码的计算方式如下:...

  • 补码

    原码、反码、补码 原码:符号位 反码:减法变加法 补码:+1解决-0问题 数学原理 同余 反码:mod127 补码...

  • JAVA中负数的二进制表示

    计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码,反码=原码按位取反 补码=反码+1。 移码为补码...

  • 【计算机】我的收藏文章索引

    索引表 索引标题链接摘要原码、反码、补码《原码、反码、补码,详解》http://www.cnblogs.com/z...

  • 位运算

    1.原码、反码、 补码正数的原码、反码、 补码都一样 正数以原码存储在计算机负数 以补码存储在计算机 例...

  • [计基]-二进制之补码

    一.基础名词 原码 : 0011 反码 :0011(原码) >> 1100(反码) (原码按位取反) 补码 :00...

  • 原码、反码和补码

    正数的原码、反码和补码相同,亦是正数 负数的原码、反码和补码符号位为1,代表负数,反码在原码的基础上符号位不变,其...

网友评论

      本文标题:对原码,反码,补码的理解

      本文链接:https://www.haomeiwen.com/subject/lvdetctx.html