java 二进制与负数互相转化 |
您所在的位置:网站首页 › 负数转换为16进制的方法是 › java 二进制与负数互相转化 |
负数表示 首先我们要对原码、反码和补码有个了解: 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、对反码加一,获取补码。 3转为二进制 3 0011 1100 1101 二进制负数(开头为1)转为十进制负数 1、 对二进制减一 2、 对此数取反码 3、 得到此数的十进制 1101 1100 0011 3 java 二进制与十进制互相转化 int num=3; String s=Integer.toBinaryString(num); //负数转十进制 BigInteger bi = new BigInteger(num); bi.toString(2); int a=Integer.valueOf(s,2); //当二进制位负数时 BigInteger bi = new BigInteger(s., 2); return bi.intValue(); |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |