题目描述
我们处理的整数通常用十进制表示,在计算机内存中是以二进制补码形式存储,但通常二进制表示的整数比较长,为了便于在程序设计过程中理解和处理数据,通常采用八进制和十六进制,缩短了二进制补码表示的整数,但保持了二进制数的表达特点。请输出十进制整数1234对应的八进制和十六进制。
输入描述:
无
输出描述:
十进制整数1234对应的八进制和十六进制(字母大写),用空格分开,并且要求,在八进制前显示前导0,在十六进制数前显示前导0X。
备注:
printf可以使用使用格式控制串“%o”、“%X”分别输出八进制整数和十六进制整数,并使用修饰符“#”控制前导显示
第一种解法:
public class Main{
public static void main(String[] args){
int i=1234;
System.out.println("0"+Integer.toOctalString(i)+" 0X"+Integer.toHexString(i).toUpperCase());
}
}
第二种解法:
public class Main{
public static void main(String[] args){
int x=1234;
System.out.printf("%#o", x);
System.out.print(' ');
System.out.printf("%#X", x);
}
}
第三种解法:
public class Main{
public static void main(String[] args){
int x=1234;
System.out.printf("%#o %#X",x, x);
}
}
刷题心得:
1.java之中进制的转换:
十进制转成十六进制:
Integer.toHexString(int i)
十进制转成八进制
Integer.toOctalString(int i)
十进制转成二进制
Integer.toBinaryString(int i)
十六进制转成十进制
Integer.valueOf("FFFF",16).toString()
八进制转成十进制
Integer.valueOf("876",8).toString()
二进制转十进制
Integer.valueOf("0101",2).toString()
2.toUpperCase表示转换为大写字母,转换为小写字母为toLowerCase