题目描述
数在生活中有各种各样的表示法。时间的小时是24进制,时间的分是60进制,计算机内的数用二进制,我们平时用十进制。请你把一个十进制的数转成八进制和十六进制。
输入格式
输入有若干行,每行一个整数代表一个十进制数。数字范围在int以内。
输出格式
按要求的格式输出对应的八进制数和十六进制数。
如输入10时,输出格式是:10 = 12(8) = a(16)
输入负数时,只需要将其相反数转化成对应进制,输出时在前面添加负号即可。
输入样例
10
-2
99
100
-100
输出样例
10 = 12(8) = a(16)
-2 = -2(8) = -2(16)
99 = 143(8) = 63(16)
100 = 144(8) = 64(16)
-100 = -144(8) = -64(16)
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
while(scanner.hasNextInt())
{
int a=scanner.nextInt();
if(a<0)
{
int b=Math.abs(a);
//format保留全部位数了
String c=Integer.toHexString(b);
String d=Integer.toOctalString(b);
System.out.println(a+" "+"="+" "+"-"+d+"(8)"+" "+"="+" "+"-"+c+"(16)");
}
else
{
String c=Integer.toHexString(a);
String d=Integer.toOctalString(a);
System.out.println(a+" "+"="+" "+d+"(8)"+" "+"="+" "+c+"(16)");
}
}
}
}
接收的是数字用Interger,接收的是字符串用Long.valueOf