67,515
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) {
int a = 527461410;
int a1 = (a & 0xff);
int a2 = ((a >> 8) & 0x00ff);
int a3 = ((a >> 16) & 0x00ff);
int a4 = ((a >> 24) & 0x00ff);
System.out.println(byteToHex(a1) + byteToHex(a2) +byteToHex(a3) +byteToHex(a4));
}
/**
* byte转换为十六进制字符串
*
* @param b
* byte
* @return 转换后十六进制字符串
*/
public static String byteToHex(int b) {
char b01 = getChar((b & 0xf0) >> 4);
char b02 = getChar(b & 0x0f);
return String.valueOf(b01) + String.valueOf(b02);
}
/**
* 取得16进制字符串
*
* @param b
* 16进制的数字表示
* @return 16进制的char
* @throws IllegalArgumentException
* 如果非16进制的数字则抛出该异常
*/
public static char getChar(int b) {
if (b >= 0 && b <= 9) {
return (char) ('0' + b);
}
if (b >= 10 && b <= 15) {
return (char) ('A' - 10 + b);
}
throw new IllegalArgumentException("error byte:" + b);
}
BigInteger target = new BigInteger("2828718396");
System.out.println(target.toString(16));
System.out.println(Long.toHexString(2828718396l));
Number(2828718396).toString(16)