java算法-进制转换

学了这么久java,竟然才发现java的Integer类中已经把进制转换的方法写好了,直接用就行了,唉,失败。

 

一、十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有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

 

代码:

import java.util.Scanner;

import java.util.Stack;

public class Main1 {

    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);

        int x = scan.nextInt();

        scan.close();

/**

* 方法1

*/

       String[] b = new String[]{"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};

        Stack<String> stack = new Stack<String>();

        int k,kk,a = k;

        if(a==0) System.out.println(0);

       while(a!=0) {

            k = a/16;

           if(k==0) {

                stack.push(b[a]);

            }else{

                kk = a%16;

                stack.push(b[kk]);

           }

            a/=16;

       }

       while(!stack.empty()) {

            System.out.print(stack.pop());

        }

/**

* 方法2

*/

        System.out.println(Integer.toString(x,16).toUpperCase());

    }

}

 

二、给定n个十六进制正整数,输出它们对应的八进制数。

输入格式

  输入的第一行为一个正整数n (1<=n<=10)。

  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

输出格式

  输出n行,每行为输入对应的八进制正整数。

  【注意】

  输入的十六进制数不会有前导0,比如012A。

  输出的八进制数也不能有前导0。

样例输入

  2

  39

  123ABC

样例输出

  71

  4435274

 

代码:

import java.util.Scanner;

    public class Main2 {

        public static void main(String[] args) {

            Scanner scan = new Scanner(System.in);

            int n = scan.nextInt();

            String[] a = new String[n];

            for (int i = 0; i < n; i++) {

                a[i] = Integer.toString(Integer.valueOf(scan.next(),16),8);

            }

            for (int i = 0; i < a.length; i++) {

                System.out.println(a[i]);

            }

    }

}

发布了8 篇原创文章 · 获赞 7 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览