原码反码补码

在Java中,无论是小数还是整数,他们都要带有符号(和C语言不同,C语言有无符号数)。首位就作为符号位。

原码

反码

  • 正数的反码是其原码本身
  • 负数的反码是在其原码的基础上, 符号位不变,其余各个位取反

补码:

  • 正数的补码就是其本身
  • 负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1(即在反码的基础上+1,此时1000表示-8)

比如-7原码为1111,反码为1000,补码就是1001了,-6原码为1110,反码为1001,补码就是1010。运算:

1+(-1) = 0001 + 1111 = (1)0000 => +0 (现在无论怎么算,也不会有-0了)

相关推荐
@淡 定15 分钟前
异常处理最佳实践
java
一起养小猫17 分钟前
LeetCode100天Day1-字符串匹配与Z字形变换
java·leetcode
白宇横流学长19 分钟前
基于SpringBoot实现的冬奥会科普平台设计与实现【源码+文档】
java·spring boot·后端
APIshop30 分钟前
Java爬虫1688详情api接口实战解析
java·开发语言·爬虫
Evan芙1 小时前
Tomcat内存机制以及按场景调优
java·tomcat
总爱写点小BUG1 小时前
打印不同的三角形(C语言)
java·c语言·算法
星辰烈龙2 小时前
黑马程序员Java基础9
java·开发语言
山沐与山2 小时前
【Redis】Redis集群模式架构详解
java·redis·架构
ss2732 小时前
Java并发编程:DelayQueue延迟订单系统
java·python·算法
wcy_10112 小时前
七大软件设计原则
java·设计规范