黑马程序员技术交流社区
标题:
负数在底层是怎么表示的?
[打印本页]
作者:
大家伙
时间:
2015-7-21 20:19
标题:
负数在底层是怎么表示的?
位移中有点混淆了,到底负数在底层是怎么表示的?
作者:
ZeroHegel
时间:
2015-7-21 21:34
java中数字在运算中存的是补码,这样便于计算机硬件运算(我的理解)。
整数的补码等于原码;负数的补码是原码取反得到反码,反码再加1。假设一个byte类型(8位),对于有符号数第1位是符号位(0为正数,1为负数),正数1的原码和补码都等于00000001;负数-1的原码是10000001,反码为11111110,补码为11111111 。
这样来说的话正数1在计算机中存的是00000001,负数-1在计算机中存的是11111111 。
作者:
_sunrain
时间:
2015-7-21 21:47
符号位是-1
作者:
_sunrain
时间:
2015-7-21 21:49
_sunrain 发表于 2015-7-21 21:47
符号位是-1
错了……1
作者:
李金伦
时间:
2015-7-21 21:52
二进制,除符号位外,取反加1
作者:
白衣卿相
时间:
2015-7-21 22:14
在计算机中所有的数据都是以补码的形式存在。
有符号数据:
1. 正数的原码、反码、补码都相同
2. 负数的原码、反码、补码:
原码:符号位是1,数据值和正数一样
反码:符号位不变,数据值取反
补码:反码+1
作者:
T-l-H、小生
时间:
2015-7-21 22:33
这些东东,无论开发,还是面试,都不怎么用得上
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2