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

java怎么把int,按4位一取,转换成16进制输出

2012-12-29 
java如何把int,按4位一取,转换成16进制输出?问题还可以变一下:byte[] b{12,14,15,16};把b连成一个32位的;

java如何把int,按4位一取,转换成16进制输出?
问题还可以变一下:
byte[] b={12,14,15,16};
把b连成一个32位的;
然后按4位一取,换成16进制,输出?
[解决办法]

public class ByteTran {
static byte[] b={12,14,15,16};

public static void main(String[] args){
Integer resut = 0;
for(int i = 0; i < b.length; i++){
resut 
[解决办法]
= (b[i]<<((b.length-i-1)*8));
}
//输出十六进制
System.out.println(Integer.toHexString(resut));
}
}

[解决办法]
补充一下,由于java里面没有unsigned byte,所以需要通过&0xff将符号位去掉。

int convertBytesToInt(byte[] b)
{
if(b == null 
[解决办法]
 b.length != 4)
   return 0;

   int n0 = b[3];
   n0= (n0&0xff)<<24;
   int n1 = b[2];
   n1= (n1&0xff)<<16;
   int n2 = b[1];
   n2= (n2&0xff)<<8;
  int n3 = b[0];
   n3= (n3&0xff)<<24;
   
   return n0
[解决办法]
n1
[解决办法]
n2
[解决办法]
n3;

热点排行