JAVA中负数转二进制分析
2014-09-09 14:24
127 查看
最近在看集合源码,发现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
首先我们要对原码、反码和补码有个了解:
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中负数的二进制表示
- 对于二进制文件,我们用java读出一个一个byte,再用system.out.printlin写到文件里,一个一个分析
- Java中负数的二进制如何计算
- java浮点数的二进制格式分析
- java学习笔记(常量 二进制 其他进制 负数进制 变量 自动类型提升 强制类型转换 )
- java程序中的进制(负数的二进制)
- java中负数的二进制表示
- 通过阅读、分析和翻译二进制格式的Java Class文件学习Java Class的技术
- Java中的负数的在计算机中的二进制表示,以及与十进制的相互转换
- java二进制正数和负数取反
- Java中负数的二进制表示
- (转)Java中负数的二进制表示
- 用Java读二进制报文、做报文分析软件
- Java语法基础---进制---负数二进制
- 【Java基础】15、负数的二进制表示方法
- Java里面int范围对应的二进制举例分析
- Java 位运算(移位、位与、或、异或、非) 以及负数的二进制相互计算
- 黑马程序员---java学习笔记之负数的二进制、负数的模
- Java 负数转换成二进制
- java 进制转换,二进制 十进制 十六进制 正数 负数的进制等等!