A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*需求:在控制台输入一个数,然后转成一个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);//这里要用==号或者!=号,否则就成了赋值
               
        }
}

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马