基本數據轉換:
package com.example.my_byte_hex_show;
//數據轉換BIN等變換
public class byte_int_long_to_bin_hex {
//輸入一個byte轉換為bin并且補齊8位返回
public static String bytetobin(byte b){//輸入一個byte轉換為bin并且補齊8位返回
String b1 = byte_to_bin(b);//傳入一個byte,返回一個二進制字符串
return b1;
}
private static String byte_to_bin(byte b){//傳入一個byte,返回一個二進制字符串
//byte b = (byte) 0x80;//大于0x7f都要加強轉(byte)
int temp = b & 0xff;
String bintostr = String.format("%8s",Integer.toBinaryString(temp).replace(' ','0'));//補全8位
// String s = bytesToHex_old(bytes, 20);20個全轉換
String s = byteToHex(b);//只轉換一個
// System.out.println(s +" 轉BIN= " + bintostr);
//小于0X80時,BIN長度不足8位時,要在左邊補0
bintostr = bintostr.trim();
bintostr = wei_to_8(bintostr);
return bintostr;
}
//.................................
private static String wei_to_8(String s){//長度不足8位時,補全8位
//String s1 = "";
if (s.length() < 8) {
int cnt = 8 - s.length();
while (cnt > 0) {
s = "0" + s;
cnt--;
}
}
// System.out.println("長度不足8位時,補全8位后= " + s);
return s;
}
//..........將byte轉換hex..........
public static String byteToHex(byte b) {//將byte轉換hex
String strHex = Integer.toHexString(0xFF & b);
// System.out.println(b + " byte轉換bin時 =" + strHex);
if (strHex.length() == 1) {
strHex = "0" + strHex;
}
return strHex;
}
//........輸入INT,轉換為BIN返回
//輸入一個int轉換為bin并且補齊32位返回
public static String inttobin(int b){//輸入一個INT轉換為bin并且補齊32位返回
String b1 = int_to_bin(b);//傳入一個byte,返回一個二進制字符串
return b1;
}
private static String int_to_bin(int b){//傳入一個byte,返回一個二進制字符串
//byte b = (byte) 0x80;//大于0x7f都要加強轉(byte)
//int temp = b & 0xff;
int temp = b ;
// String bintostr = String.format("%8s",Integer.toBinaryString(temp).replace(' ','0'));//補全8位
String bintostr = String.format("%32s",Integer.toBinaryString(temp).replace(' ','0'));//補全8位
// String s = bytesToHex_old(bytes, 20);20個全轉換
String s = intToHex(b);//只轉換一個
// System.out.println(s +" 轉BIN= " + bintostr);
//小于0X80時,BIN長度不足8位時,要在左邊補0
bintostr = bintostr.trim();
bintostr = wei_to_32(bintostr);
return bintostr;
}
//.................................
private static String wei_to_32(String s){//長度不足32位時,補全32位
//String s1 = "";
if (s.length() < 32) {
int cnt = 32 - s.length();
while (cnt > 0) {
s = "0" + s;
cnt--;
}
}
// System.out.println("長度不足32位時,補全32位后= " + s);
return s;
}
//..........將int轉換hex..........
/*
String strHex = Integer.toHexString(0xFFFFFFFF & b);//
0xff = byte
short e = (short) 0xffff;
0xffffffff = int,long
*/
public static String intToHex(int b) {//將byte轉換hex
String strHex = Integer.toHexString(0xFFFFFFFF & b);//
//System.out.println("10進制數據= "+b + " int轉換bin時 =" + strHex);
if (strHex.length() == 1) {
strHex = "0" + strHex;
}
return strHex;
}
//........輸入long,轉換為BIN返回
//輸入一個int轉換為bin并且補齊32位返回
public static String longtobin(long b){//輸入一個INT轉換為bin并且補齊32位返回
String b1 = long_to_bin(b);//傳入一個byte,返回一個二進制字符串
return b1;
}
private static String long_to_bin(long b){//傳入一個byte,返回一個二進制字符串
//byte b = (byte) 0x80;//大于0x7f都要加強轉(byte)
//int temp = b & 0xff;
long temp = b ;
// String bintostr = String.format("%8s",Integer.toBinaryString(temp).replace(' ','0'));//補全8位
String bintostr = String.format("%32s",Long.toBinaryString(temp).replace(' ','0'));//補全8位
// String s = bytesToHex_old(bytes, 20);20個全轉換
String s = longToHex(b);//只轉換一個
//System.out.println(s +" 轉BIN= " + bintostr);
//小于0X80時,BIN長度不足8位時,要在左邊補0
bintostr = bintostr.trim();
bintostr = wei_to_320(bintostr);
return bintostr;
}
//.................................
private static String wei_to_320(String s){//長度不足32位時,補全32位
//String s1 = "";
if (s.length() < 32) {
int cnt = 32 - s.length();
while (cnt > 0) {
s = "0" + s;
cnt--;
}
}
// System.out.println("長度不足32位時,補全32位后= " + s);
return s;
}
//..........將long轉換hex..........
public static String longToHex(long b) {//將byte轉換hex
String strHex = Long.toHexString(0xFFFFFFFF & b);
// System.out.println("10進制數據= "+b + " LONG轉換bin時 =" + strHex);
if (strHex.length() == 1) {
strHex = "0" + strHex;
}
return strHex;
}
}
public void byte_int_long_to_bin_hex_test(){//轉換類測試
byte b = 0x45;
System.out.println("byte b = 0x45;測試類byte to bin= "+byte_int_long_to_bin_hex.bytetobin(b));
System.out.println("byte b = 0x45;測試類byte to bin16進顯示= "+byte_int_long_to_bin_hex.byteToHex(b));
int c = 0x12345;
System.out.println("int c = 0x12345;測試類int to bin= "+byte_int_long_to_bin_hex.inttobin(c));//輸入一個INT轉換為bin并且補齊32位返回);
System.out.println("int c = 0x12345;測試類int to bin16進顯示= "+byte_int_long_to_bin_hex.intToHex(c));//輸入一個INT轉換為bin并且補齊32位返回);
long d = 0x54321;
System.out.println("long d = 0x54321;測試類long to bin= "+byte_int_long_to_bin_hex.longtobin(d));//輸入一個long轉換為bin并且補齊32位返回);
System.out.println("long d = 0x54321;測試類long to bin16進顯示= "+byte_int_long_to_bin_hex.longToHex(d));//輸入一個long轉換為bin并且補齊32位返回);
System.out.println("--------------------------------");
d = 0x7FFFFFFE;
System.out.println("long d = 0x7FFFFFFE;測試類long to bin= "+byte_int_long_to_bin_hex.longtobin(d));//輸入一個long轉換為bin并且補齊32位返回);
System.out.println("long d = 0x7FFFFFFE;測試類long to bin16進顯示= "+byte_int_long_to_bin_hex.longToHex(d));//輸入一個long轉換為bin并且補齊32位返回);
System.out.println("-----byte---------------------------");
b = 0x25;
System.out.println("byte b = 0x25;測試類byte to bin= "+byte_int_long_to_bin_hex.bytetobin(b));
System.out.println("byte b = 0x25;測試類byte to bin16進顯示= "+byte_int_long_to_bin_hex.byteToHex(b));
b = (byte) 0xfe;
System.out.println("byte b = 0xfe;測試類byte to bin= "+byte_int_long_to_bin_hex.bytetobin(b));
System.out.println("byte b = 0xfe;測試類byte to bin16進顯示= "+byte_int_long_to_bin_hex.byteToHex(b));
} |