byte ---> hex String

3617 ワード

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バイト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ビットは上0 xFFと
補数:
   1111 1111
  [ 1111 1111 ] [ 1111 1111 ] [ 1111 1111 ] [1111 1111]
0 XFFFFFFと上0 Xff高さ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);