正数的原码,反码,补码

正数的原码,反码,补码nbsp nbsp 这之前 遇到什么原码 反码 补码 就头疼 其实遇到一个自己怕的问题 就一定要解决它 吃掉它 这样心里的心结就解决了 不然等到以后 每次遇到都是跳过 跳过 难受香菇 nbsp nbsp nbsp nbsp 首先提几个概念 原码 反码 补码 原码是什么 原码就是早期用来表示数字的一种方式 一个正数 转换为二进制位就是这个正数的原码 负数的绝对值转换成二进制位然后在高位补 1 就是这个负数的

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

    

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

    原码是什么?

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

      举例说明:

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

      00000000 00000000 00000000 00000011

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

       00000000 00000000 00000011      

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

    

    反码是什么 ?

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

      举例说明:

      int类型的 3 的反码是

      00000000 00000000 00000000 00000011

      和原码一样没什么可说的

      int类型的 -3 的反码是

      

      除开符号位 所有位 取反

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

    

    补码是什么?

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

      还是举例说明:

      int类型的 3 的补码是:

      00000000 00000000 00000000 00000011

      int类型的 -3 的补码是

      

      就是其反码加1

 

最后总结一下:

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

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

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

 

    

各自的优缺点:

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

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

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

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

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

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

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

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

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

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

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/209727.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午8:33
下一篇 2026年3月19日 上午8:33


相关推荐

  • bs与cs架构的优缺点_bs架构与cs架构的区别详细讲解

    bs与cs架构的优缺点_bs架构与cs架构的区别详细讲解简介C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、Informix或SQLServer。客户端需要安装专用的客户端软件。B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。浏览器通过Web

    2022年8月31日
    6
  • Object类通过转为JsonObject或Map获取属性值「建议收藏」

    Object类通过转为JsonObject或Map获取属性值「建议收藏」Object类通过转为JsonObject或Map获取属性值简介:在项目使用中,我们经常会遇到object类,如何快速的获取其属性值?在此,不通过反射机制获取,而是将其转为JsonObject类或者Map,获取其对应属性名的属性值。Object类//object使用情景一:Objecto=redisTemplate.opsForHash().get(vehicleMessage,engineCode);//object使用情景二:Objectob=json.get

    2022年5月2日
    74
  • django常用命令_java命令行参数的使用方法

    django常用命令_java命令行参数的使用方法前言我们掌握了如何在命令提示符或PyCharm下创建Django项目和项目应用,无论是创建项目还是创建项目应用,都需要输入相关的指令才能得以实现,这些都是Django内置的操作指令。在PyChar

    2022年7月28日
    9
  • Rancher v1.2基础设施引擎整体架构分析

    Rancher v1.2基础设施引擎整体架构分析

    2022年3月8日
    43
  • Mysql字符串字段判断是否包含某个字符串的方法

    Mysql字符串字段判断是否包含某个字符串的方法方法一 likeSELECT FROM 表名 WHERE 字段名 like 字符 方法二 find in set 利用 mysql 字符串函数 find in set SELECT FROMusersWHE in set 字符 字段名 这样是可以的 怎么理解呢 mysql 有很多字符串函数 find in set str1 s

    2026年3月17日
    2
  • java 毕设 成品_校园物品交换平台 – java|jsp类成品展示 – 计算机专业毕业设计论文成品网…

    java 毕设 成品_校园物品交换平台 – java|jsp类成品展示 – 计算机专业毕业设计论文成品网…与传统的交换方式相比,物品交换网站是另一种形态的宣传和交换通道,是传统交换方式的延伸。它除了一般的电子商务功能外,还包括产品展示,商品检索,在线交友等服务;在迎合了电子商务这个社会大前提下,每个人都可以在网上购买或者交换自己喜欢的商品,从而可以大大地节约资金、时间和资源,并起到促进整个社会和谐的作用。校园物品交换平台使用JSP,Hibernate,Structs,Spring,Html,CSS。后…

    2022年7月7日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号