首页 > 编程语言 > 详细

JAVA中负数转二进制分析

时间:2014-09-09 16:11:59      阅读:228      评论:0      收藏:0      [点我收藏+]

最近在看集合源码,发现ArrayDeque里面用到了大量的&运算,这牵扯到了二进制。突然发现自己对负数的二进制有点模糊了,对此进行了一些支持补充。

首先我们要对原码、反码和补码有个了解:

1、所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
2、反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
原码10010= 反码11101 (10010,1为符号码,故为负)
(11101) 二进制= -13 十进制
3、补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

举一例,我们来看整数-1在计算机中如何表示。
假设这也是一个int类型,那么:
1、先取1的原码:00000000 00000000 00000000 00000001
2、得反码:     11111111 11111111 11111111 11111110
3、得补码:     11111111 11111111 11111111 11111111

十六进制表示: 0xFFFFFFFF

所以Java中Integer.toBinaryString(-5)结果为11111111111111111111111111111011. Integer是32位(bit)的.

负数的二进制规律:

1、取负数的绝对值的原码;

2、计算原码的反码;

3、对反码加一,获取补码。


作者:伫望碧落 出处:http://blog.csdn.net/cl05300629

JAVA中负数转二进制分析

原文:http://blog.csdn.net/cl05300629/article/details/39155607

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!