题目:数字进制转化
从键盘随机输入一个十进制数,输出打印对应的二进制数
八进制数和十
public class Trans {
public static void main(String[] args) {
int i = 100;
Scanner in = new Scanner(System.in);
System.out.println("请输入一个十进制数:");
i = in.nextInt();
System.out.println("转换为二进制:");
binary2(i);
System.out.println("转换为八进制:");
binary8(i);
System.out.println(" ");
System.out.println("转换为十六进制:");
binary16(i);
}
/**
* 除基取余法
*/
//转换为二进制
public static void binary2(int n) {
int t = 0; //用来记录位数
int bin = 0; //用来记录最后的二进制数
int r = 0; //用来存储余数
while (n != 0) {
r = n % 2;
n = n / 2;
bin += r * Math.pow(10, t);
t++;
}
System.out.println(bin);
}
//转换为8进制
public static void binary8(int i) {
Stack s = new Stack();
while (i>0) {
s.push(i%8+"");
i=i/8;
}
while(!s.isEmpty())System.out.print((String)s.pop());
}
//转换为16进制
public static void binary16(int i) {
String hex = "";//十六进制数的字符串初始时为空
while (i != 0) {
int hexValue = i % 16;
//把一个十进制值转化为十六进制值
char hexDigit = (hexValue <= 9 && hexValue >= 0) ?
(char) (hexValue + '0') : (char) (hexValue - 10 + 'A');
hex=hexDigit+hex;
i=i/16;
}
System.out.println(hex);
}
}
六进制数