首页 > 基础教程 > 常用类 > 常用 Integer类
Java ()十进制转成十六进制
java中()用于将十进制转成十六进制输出。
定义
String toHexString(int i) //以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
也就是将传入的数值十进制转成十六进制
源码
public static String toHexString(int i) {
return toUnsignedString0(i, 4);
}
private static String toUnsignedString0(int val, int shift) {
// assert shift > 0 && shift <=5 : "Illegal shift value";
//计算这个int转换成二进制后占多少bit(123-->>7)
int mag = - (val);
//用于确定最后生成的字符串有几个字符
int chars = (((mag + (shift - 1)) / shift), 1);
char[] buf = new char[chars];
//具体解析出每个字符是什么
formatUnsignedInt(val, shift, buf, 0, chars);
// Use special constructor which takes over "buf".
return new String(buf, true);
}
static int formatUnsignedInt(int val, int shift, char[] buf, int offset, int len) {
int charPos = len;
int radix = 1 << shift;//2^shift (此例子是2^4)
int mask = radix - 1; //(16进制-->>15 8进制-->>7)
do {
//val&mask 相当于 val%(mask+1) 这里是 123%16
buf[offset + --charPos] = [val & mask];
val >>>= shift;
} while (val != 0 && charPos > 0);
return charPos;
}
例子
public class IntegerToHexStringDemo {
public static void main(String[] args) {
byte a=-1;
("-1 hex : 0x"+(a));
("-1&0xff : 0x"+(a&0xff));
("十进制转十六进制:"+(120));
}
}
输出
-1 hex : 0xffffffff
-1&0xff : 0xff
十进制转十六进制:78
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。