public static String str2HexStr(String str) {
char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
byte[] bs = str.getBytes();
int bit;
for (int i = 0; i < bs.length; i++) {
bit = (bs[i] & 0x0f0) >> 4;
sb.append(chars[bit]);
bit = bs[i] & 0x0f;
sb.append(chars[bit]);
// sb.append(' ');
}
return sb.toString().trim();
}
public static String hexStr2Str(String hexStr) {
String str = "0123456789ABCDEF";
char[] hexs = hexStr.toCharArray();
byte[] bytes = new byte[hexStr.length() / 2];
int n;
for (int i = 0; i < bytes.length; i++) {
n = str.indexOf(hexs[2 * i]) * 16;
n += str.indexOf(hexs[2 * i + 1]);
bytes[i] = (byte) (n & 0xff);
}
return new String(bytes);
}
//字符串转16进制
public static String toChineseHex(String s)
{
String ss = s;
byte[] bt = new byte[0];
try {
bt = ss.getBytes("GBK");
}catch (Exception e){
e.printStackTrace();
}
String s1 = "";
for (int i = 0; i < bt.length; i++)
{
String tempStr = Integer.toHexString(bt[i]);
if (tempStr.length() > 2)
tempStr = tempStr.substring(tempStr.length() - 2);
s1 = s1 + tempStr + "";
}
return s1.toUpperCase();
}
/**
* 将时间转为16进制
* @return
*/
public static List<String> timeTo16hex() {
String year = DateUtil.format(new Date(), "yyyy");
String formata = DateUtil.format(new Date(), "MM,dd,HH,mm,ss");
String right = StringUtils.right(year, 2);
String dateVal = right+","+formata;
List<String> splitToList = Splitter.on(",").splitToList(dateVal);
List<String> timeStr=new ArrayList<String>();
for (int i = 0; i < splitToList.size(); i++) {
String hexString = Integer.toHexString(Integer.parseInt(splitToList.get(i)));
if(hexString.length()==1) {
hexString="0"+hexString;
}
timeStr.add(hexString);
}
return timeStr;
}
//
public static String toHexString(String s) {
String str = "";
for (int i = 0; i < s.length(); i++) {
int ch = (int) s.charAt(i);
String s4 = Integer.toHexString(ch);
str = str + s4;
}
return "0x" + str;//0x表示十六进制
}
public static void main(String[] args) {
System.out.println("---10进制转16进制字符串---"+str2HexStr("0000"));
System.out.println("---16进制转10进制字符串---"+hexStr2Str("30"));
System.out.println("---字符串转16进制---"+hexStr2Str("30"));
//数组
System.out.println("---将时间转为16进制--"+timeTo16hex());
Integer valueOf9vo = Integer.valueOf("16",16);
System.out.println("--将16进制转为10进制--"+valueOf9vo);
//2进制转为10进制
int hexString = Integer.parseInt("110000", 2);
System.out.println("--2进制转为10进制--"+hexString);
String hexString2 = Integer.toHexString(hexString);
System.out.println("--10进制转为16进制--"+hexString2);
}
10进制转16进制字符串,16进制转10进制字符串,将时间转为16进制,2进制转为10进制
于 2022-09-15 17:36:36 首次发布