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

解决方案 »

  1.   

    某个负数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()));
    如果有问题忘高手指点
      

  2.   

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