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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

德华

中级黑马

  • 黑马币:-28

  • 帖子:114

  • 精华:0

© 德华 中级黑马   /  2016-3-15 00:15  /  443 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/*
        需求:将用户输入的十进制数字进行进制转换。
*/
import java.util.Scanner;
class JinZhiZhuanHuan{
        public static void main(String[] args){
        System.out.println("本程序目的是将十进制转化为2进制或8进制或16进制");
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数字:");
        int x = sc.nextInt();
       
        System.out.println("请输入您要转换成几进制");
        int y = sc.nextInt();

        int hh;
        hh = x;
        System.out.print(hh+"对应的"+y+"进制为");                //终于要输出结果啦!
        int[] sh = new int [32];
        char [] ch = new char []{'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
         if(y==2){                                                //十进制转2进制
                         if(hh==0)        {
                                                        System.out.print("0");
                                                }
                                for(int a = 0;a<32;a++){
                                        int b = x&(y-1);                                // int b = x%y;
                                        sh[a] = b;
                                        x>>>=1;       
                        }
                }
       
                        else if(y==8){                                        //十进制转8进制
                                         if(hh==0){
                                                System.out.print("0");
                                        }
                                        for(int a = 0;a<11;a++){
                                        int b = x&(y-1);                        //int b = x%y;
                                        sh[a] = b;
                                        x>>>=3;
                       
                                }

                        }
                                else if(y==16){                                //十进制转16进制
                                         if(hh==0){
                                                System.out.print("0");
                                        }
                                        for(int a = 0;a<8;a++){
                                                int b = x&(y-1);                // int b = x%y;
                                                sh[a] = b;
                                                x>>>=4;
                                        }
                                }
                                else        System.out.println("没有对应进制!");
               

                               
                        for(int s = sh.length-1;s>=0;s--){                //找出进制转换后的第一位有效数字
                                if(sh[s]!=0){
                                        for(;s>=0;s--){
                                                System.out.print(ch[(sh[s])]);
                                        }
                                }
                        }



        }

}
这代码我看不懂,期望大神给解读解读!

1 个回复

正序浏览
何必这样呢,看不懂直接问我就好了,还把我的代码发网上,我写这么烂,你发出来不是让别人骂我么?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马