• 【JAVA蓝桥杯】基础练习1 十进制转十六进制


    资源限制
    时间限制:1.0s   内存限制:512.0MB
    问题描述
      十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。
      给出一个非负整数,将它表示成十六进制的形式。
    输入格式
      输入包含一个非负整数a,表示要转换的数。0<=a<=2147483647
    输出格式
      输出这个整数的16进制表示
    样例输入
    30
    样例输出
    1E
    JAVA标准代码如下所示
    // 十进制转十六进制  
    import java.util.Scanner;
    public class Main {
        public static void main(String[] args) {
            int n=new Scanner(System.in).nextInt();
            char[] arr=new char[20];
            int i=0;
            char[] date={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
            if (n==0) {
                System.out.println(n);
            }
            while(n>0){
                arr[i]=date[n%16];
                n=n/16;
                i++;
            }
            String string=new String(arr).trim();
            String str=new StringBuffer(string).reverse().toString();//reverse字符串反转函数
            System.out.println(str);
        }    
    }

    1.上面的代码中int n=new Scanner(System.in).nextInt();与Scanner in=new Scanner(System.in); int n=int.nextInt();是等价的,不同的地方在于如果你要多数据输入的话都是采用第二种方法,第一种方法只能单个值输入,单个内存值比后者要大。

    2.String string=new String(arr).trim();的意思是去掉字符串中多余的空格。当然,它也是可以分开的(string.trim();)。

    3.本题的重中之重来了!!!看下面的代码我们把它拆分

    StringBuffer sb = new StringBuffer("abc"); 
    sb.reverse();
    sb.toString();

    这里的StringBuffer的作用是对象初始化,我们输入abc这样初始化出的StringBuffer对象的内容就是字符串”abc”。后面的reverse();的含义就是把字符串对调。输入abc出来则为cba,充分考虑到了进制余数从下往上数的方法;sb.toString()就是返回该stringbuffer的字符串形式。值得注意的是, 若希望将StringBuffer在屏幕上显示出来, 则必须首先调用toString方法把它变成字符串常量, 因为PrintStream的方法println()不接受StringBuffer类型的参数

  • 相关阅读:
    小程序 ----- 使用less框架
    小程序 ------ 选择器(十)
    小程序 ------ 样式(九)
    小程序 --- 事件绑定(八)
    记一次接口数据获取最大最小值
    flutter——命名路由跳转传值
    Dart——库
    Dart——基础
    人口普查小结
    人口普查-运行截图
  • 原文地址:https://www.cnblogs.com/chenxi1944362410/p/12275537.html
Copyright © 2020-2023  润新知