必威体育Betway必威体育官网
当前位置:首页 > IT技术

正数的原码,反码,补码

时间:2019-10-18 20:13:26来源:IT技术作者:seo实验室小编阅读:54次「手机版」
 

正数

这之前,遇到什么原码,反码,补码,就头疼,其实遇到一个自己怕的问题,就一定要解决它,吃掉它,这样心里的心结就解决了,不然等到以后,每次遇到都是跳过,跳过,难受香菇。

首先提几个概念: 原码,反码,补码 

  原码是什么?

    原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码

    举例说明:

    int类型的 3 的原码是 11B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得:

    00000000 00000000 00000000 00000011

    int类型的 -3 的绝对值的二进制位就是上面的 11B 展开后高位补零就得:

    10000000 00000000 00000000 00000011      

    但是原码有几个缺点,零分两种 +0 和 -0 。很奇怪是吧!还有,在进行不同符号的加法运算或者同符号的减法运算的时候,不能直接判断出结果的正负。你需要将两个值的绝对值进行比较,然后进行加减操作 ,最后符号位由绝对值大的决定。于是反码就产生了。

  

  反码是什么 ?

    正数的反码就是原码,负数的反码等于原码除符号位以外所有的位取反

    举例说明:

    int类型的 3 的反码是

    00000000 00000000 00000000 00000011

    和原码一样没什么可说的

    int类型的 -3 的反码是

    11111111 11111111 11111111 11111100

    除开符号位 所有位 取反

    解决了加减运算的问题,但还是有正负零之分,然后就到补码了

  

  补码是什么?

    正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1.

    还是举例说明:

    int类型的 3 的补码是:

    00000000 00000000 00000000 00000011

    int类型的 -3 的补码是

    11111111 11111111 1111111 11111101

    就是其反码加1

最后总结一下:

  正数的反码和补码都与原码相同。

  负数的反码为对该数的原码除符号位外各位取反。

  负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1  

  

各自的优缺点

  原码最好理解了,但是加减法不够方便,还有两个零。。

  反码稍微困难一些,解决了加减法的问题,但还是有有个零

  补码理解困难,其他就没什么缺点了

喔日,说到这里,估计都晕了,举个栗子把。

5的原码是 00000000000000000000000000000101(四个字节,32位(byte))

5的原码和反码,补码都一样。

-5的原码是原码除符号位以外所有的位取反 ,10000000000000000000000000000101

-5的反码就是原码符合外取反得到反码11111111111111111111111111111010

-5的补码就是反码加一得到补码11111111111111111111111111111011

最后补充一句,负数一般用补码来计算。

相关阅读

原码,反码,补码详解及原理

原码(1) 原码:在数值前直接加一符号位的表示法。例如: 符号位 数值位byte的取值范围[+7]原= 0 0000111 B[-7]原= 1 0000111 B注意:byte

补码

重点关注红色字体部分。 1. 为何补码数值为原码数值取反+1? 两次加模, 如果数值位为n, 那么模为 2的n次方,两次加模为 2 的 n+1 次

二进制(原码、反码、补码)

前言:   bit(位):数据存储的最小单元。在计算机二进制系统中,位,简记为b,也称为比特(bit),每个二进制数字0或1就是一个位(bit),其中每 8

原码、反码、补码知识详细讲解(此作者是我找到的讲的最

本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补

二进制中原码,反码和补码是什么?

请原谅我的不用心的截图,但因为原文章在百度文库中,下载复制是需要开通会员的,所以我就飞快的截起了图 。附上原文章的地址 https:/

分享到:

栏目导航

推荐阅读

热门阅读