/*需求:在控制台输入一个数,然后转成一个16进制的在控制台输出
思路:通过&运算与右移实现
*/
import java.util.Scanner;
public class NumMenu
{
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);//新建扫描仪
System.out.println("请输入一个数字:");
int x=input.nextInt();
do
{
int y=x&15;//获得该数最后四位,通过&15获得,如果转换成8进制,就&7,去掉判断
if(y>9)
{
System.out.println((char)(y-10+'a'));//这里是通过ASSII码表来实现输出16进制中的字母,有一个强制转换的动作
}else{
System.out.println(y);
}
x=x>>>4;//这里要用无符号右移,否则可能会成无限循环,如果转换成8进制,就右移3位
}while (x!=0);//这里要用==号或者!=号,否则就成了赋值
}
} |