• 首页

  • 归档

  • 标签

  • 分类

  • 友链
M S B l o g
M S B l o g

ms

获取中...

04
29
java
总结

负数的二进制

发表于 2021-04-29 • java 总结 • 被 875 人看爆

在计算机中,负数以原码的补码形式表达

原码:一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码
例如:

00000000 00000000 00000000 00000101 是 5的 原码
10000000 00000000 00000000 00000101 是 -5的 原码

反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反
例如:

正数00000000 00000000 00000000 00000101 的反码还是 00000000 00000000 00000000 00000101
负数10000000 00000000 00000000 00000101每一位取反(除符号位),得反码11111111 11111111 11111111 11111010

补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1
例如:

10000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010
补码为:
11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

一个负数二进制是先将它转换成原码,再反码,最后补码即可

例:将整数-1转成二进制

1、先取-1的原码:10000000 00000000 00000000 00000001
2、得反码: 11111111 11111111 11111111 11111110(除符号位按位取反)
3、得补码: 11111111 11111111 11111111 11111111

最后-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFFFF

总结:

  • 原码表示法规定:用符号位和数值表示带符号数,正数的符号位用“0”表示,负数的符号位用“1”表示,数值部分用二进制形式表示。
  • 反码表示法规定:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。
  • 补码表示法规定:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1。
  • 正零和负零的补码相同,[+0]补=[-0]补=0000 0000
分享到:
【力扣】插入
位运算(&、|、^、~、>>、<<、>>>)
  • 文章目录
  • 站点概览
ms

MSms

⚓️HelloWorld⚓️

QQ Email RSS
看爆 Top5
  • MyBatis-Plus分页查询 5,937次看爆
  • @Autowired与@Resource的区别 4,755次看爆
  • feign远程调用及异步调用丢失请求头问题 4,527次看爆
  • spring cloud中OpenFeign整合Sentinel启动报错 4,424次看爆
  • Certbot查看证书过期时间,手动续期以及自动续期 3,302次看爆

Copyright © 2025 ms · 湘ICP备20015239号

Proudly published with Halo · Theme by fyang · 站点地图