一个128位的byte[],转换成一个16进制的字符串后,我想把这个字符串用数值型表示,怎么转换啊?
或者说这个byte[]能不能直接转换成16进制的数值型啊,因为看到网上都是转成字符型了。

解决方案 »

  1.   

    这里有你需要的答案,看下吧。。
    http://blog.ccidnet.com/blog-htm-do-showone-uid-42621-type-blog-itemid-558045.html
      

  2.   

    看不懂,什么是“16进制的数值型”?机器只认识二进制。任何数值型存到内存里面都是二进制。下面代码里面,那个b是你说的十六进制数值型吗?如果你的问题是怎么样把a转换成b吗?b和a其实完全一样的,对电脑来说,都是等于二进制1010。
        int a = 10;
        int b = 0xA;
      

  3.   

    我猜测一下lz的意思吧,你的意思是不是把byte数组转换成一个整类型啊?如果是你可以用BigInteger
        byte[] bs = new byte[4];
        BigInteger bi = new BigInteger(bs);
        System.out.println(bi);
      

  4.   

    其实就是想把byte数组转成一个整数类型的,因为这样便于比较嘛
    那BigInteger类型能表示128位这么大的数吗?
      

  5.   


    再大都能支持,但是只能用BigInteger保存,转会int类型会丢失精度,因为int类型只有32位,存不下。看API好好了解一下BigInteger 和BigDecimal两个类,对处理大数值很有用。