当前位置: 代码迷 >> Android >> java怎么把int,按4位一取,转换成16进制输出
  详细解决方案

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

热度:52   发布时间:2016-05-01 12:18:53.0
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;
  相关解决方案