byte ---> hex String

public static String byte2HexString(byte[] b){
        String ret = "";
        for(int i=0;i<b.lenght;i++){
                   String hex = Integer.toHexString(b[i]&0XFF);
                   if(hex.length()==1){
                               hex = '0'+hex;
                   }
                       ret+=hex.toUpperCase();
    }
               return ret;
}    

1  1个字节8位          1个BYTE与上2个hex字符
  1 个HEX字符4位

2 Integer.toHexString(int ---);

作用 int(十进制有符号)  ---> String (十六进制)

3 byte ==>int

byte b;

int i=b&0Xff;

分析 :byte -->8 位 int 32位

byte转int位数不够要补位 补位有偏差 故需要清零多出的高24位 即与上0xFF

补码:

   1111 1111

  [ 1111 1111 ] [ 1111 1111 ] [ 1111 1111 ] [1111 1111]

   0XFFFF FFFF与上0Xff高24位清零

&1&1 -->1

1&0 -->0

0&1 -->0

0&0 --->0

两边都成立才可以为真


1|1 -->1
1|0 -->1
0|1 -->1
0|0 -->0
两边只有一方成立即可

byte b = 24;

int i = b&FF; 清零高24位

-2  

字节       1111 1110 补码

字 1111 1111  1111 1110 补码

字节       1000 0010 源码

字   0000 0000  1000 0010 源码

            二进制      十进制

1B byte = 8 bit    1B = 8bit    1B=8bit

1 KB =1024B     1KB= 2^10B   1KB = 10^3B 

1MB =1024kb      1MB = 2^20B  1MB=10^6b

1GB = 1024mb    1GB = 2^30B    1GB = 10^9B

1TB = 1024GB    1TB= 2^40B      1TB= 10^12B

1024          2^10      10^3

hex string  == byte

1 hex string  -- integer    Integer i = Integer.parseInt("EA",16);

2 integer -- byte        Byte b = i.byteValue();

Byte HexString        byte b = -22;

1 byte -->integer        Integer i = b.intValue();

2 integer -->string       String newII = Integer.toHexString(ii).subString(6,8);

原文地址:https://www.cnblogs.com/cici-new/p/4298706.html