首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

16进制字符串怎样转成10进制,该怎么处理

2012-01-01 
16进制字符串怎样转成10进制Integer.paresInt( FBB4 ,16)64436我想实现FBB4转成-1100,即带着符号转换。

16进制字符串怎样转成10进制
Integer.paresInt( "FBB4 ",16)   =   64436
我想实现FBB4转成-1100,即带着符号转换。
有什么好办法,请大家赐教!

[解决办法]
64436-65536
[解决办法]
某个负数10进制转成16进制,理论上应该是求它绝对值的补码,也就是先去掉十进制的负号,转成二进制,再取反加一。如果16转10进制,也是就倒过来了,先把16进制化成二进制,减一再取反,最后加上负号。

比如:00000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。

那么,补码为:

11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。

本题方法:
FBB4---转二进制--1111 1011 1011 0100 ---减1---1111 1011 1011 0011
---取反---0000 0100 0100 1100---转为十进制---1100(十进制的)再加上负便可。

楼上的走了捷径。
按照楼上的思路
String s= "fbb4 ";(字符串s长度不要超过七位,否则numberformat异常)
System.out.println(Integer.parseInt(s,16)-Math.pow(2,4*s.length()));


如果有问题忘高手指点。。。

[解决办法]
FBB4只有在单字节的情况下才等于-1100;
而我们输入的都是双字节的
所以应为FFFFFBB4 前面加4个FFFF

热点排行
Bad Request.