基本数据转换:
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));
} |