A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 大家伙 中级黑马   /  2015-7-21 20:19  /  503 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

位移中有点混淆了,到底负数在底层是怎么表示的?

6 个回复

倒序浏览
java中数字在运算中存的是补码,这样便于计算机硬件运算(我的理解)。
      整数的补码等于原码;负数的补码是原码取反得到反码,反码再加1。假设一个byte类型(8位),对于有符号数第1位是符号位(0为正数,1为负数),正数1的原码和补码都等于00000001;负数-1的原码是10000001,反码为11111110,补码为11111111 。
       这样来说的话正数1在计算机中存的是00000001,负数-1在计算机中存的是11111111 。
回复 使用道具 举报
符号位是-1
回复 使用道具 举报

错了……1
回复 使用道具 举报
二进制,除符号位外,取反加1
回复 使用道具 举报
在计算机中所有的数据都是以补码的形式存在。
有符号数据:
1. 正数的原码、反码、补码都相同
2. 负数的原码、反码、补码:
原码:符号位是1,数据值和正数一样
反码:符号位不变,数据值取反
补码:反码+1
回复 使用道具 举报
这些东东,无论开发,还是面试,都不怎么用得上
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马