您的位置:程序门 -> java -> j2se / 基础类



16进制字符串怎样转成10进制


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


16进制字符串怎样转成10进制[已结贴,结贴人:stephen_cy]
发表于:2007-01-17 21:55:36 楼主
integer.paresint( "fbb4 ",16)   =   64436
我想实现fbb4转成-1100,即带着符号转换。
有什么好办法,请大家赐教!
发表于:2007-01-17 22:24:551楼 得分:5
64436-65536
发表于:2007-01-18 00:30:302楼 得分:10
某个负数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()));


如果有问题忘高手指点。。。
发表于:2007-01-18 00:38:313楼 得分:5
fbb4只有在单字节的情况下才等于-1100;
而我们输入的都是双字节的
所以应为fffffbb4     前面加4个ffff
发表于:2007-01-18 08:47:204楼 得分:0
fbb4是单字节吗?


快速检索

最新资讯
热门点击