黑马程序员技术交流社区
标题:
换代码实现进制的转换
[打印本页]
作者:
嘎路的米
时间:
2015-6-6 10:42
标题:
换代码实现进制的转换
public class Demo {
public static void main(String[] args) {
toBin(-6);
toHex(-60);
}
// 十进制-->十六进制
public static void toHex(int num) {
StringBuilder sb = new StringBuilder();// 定义一个容器,用于存储数据
char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
'B', 'C', 'D', 'E', 'F' };
while (num != 0) {// 如果数值不为0,则循环
int temp = num & 15;// 取出num二进制中的最低4位
// if (temp > 9) {
// char ch = (char) (temp - 10 + 'A');//将大于9的数转成相应的字母
// sb.append(ch);
// } else {
// sb.append(temp);// 将最低4位的十进制存入容器中
// }
sb.append(chs[temp]);
num = num >>> 4;// 将进制无符号右移4位
}
System.out.println(sb.reverse());// 将容器中的数据反转再打印
//结果:FFFFFFC4
}
// 十进制-->二进制
public static void toBin(int num) {
StringBuilder sb = new StringBuilder();// 定义一个容器,用于存储数据
while (num != 0) {
int temp = num & 1;// 取出进制的最后一位
sb.append(temp);// 将去到的值存入容器
num = num >>> 1;// 将进制无符号右移一位
}
System.out.println(sb.reverse());// 将容器中的数据反转再打印
//结果:11111111111111111111111111111010
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2