public class ToBin {
public static void main(String[] args) {
System.out.println("16的二进制为:" + toBin(16));
System.out.println("16的十六进制为:" + toHex(16));
System.out.println(toHex(255, 2, 1));
System.out.println(toHex(255, 16, 4));
System.out.println(toHex(255, 8, 3));
}
public static String toBin(int a) {
StringBuilder sb = new StringBuilder();
char[] chs = { '0', '1' };
while (a != 0) {
int b = a & 1;// 得到一个二进制位
sb.append(chs[b]);
a = a >>> 1;// 下一个二进制位
}
return sb.reverse().toString();
}
public static String toHex(int a) {
StringBuilder sb = new StringBuilder();
char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
while (a != 0) {
int b = a & 15; // 取最低4位
sb.append(chs[b]);// b-10+'A'
a = a >>> 4; // 下一个4位
}
return sb.reverse().toString();
}
public static String toHex(int a, int hex, int off) {
if (a == 0) return "0";
int base = -1;
if (hex == 2)
base = 1;
else if (hex == 16)
base = 15;// 1111
else if (hex == 8) base = 7;// 111
StringBuilder sb = new StringBuilder();
char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };
while (a != 0) {
int b = a & base; //取最低位
sb.append(chs[b]);
a = a >>> off;
}
return sb.reverse().toString();
}
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交