续一: 如何优化Java程序:十进制转十六进制(2的31次方以内的正整数)

改用switch-case后,代码如下:

package com.java;

import java.util.Scanner;

public class TestTransform {

 public static void main(String[] args) {  
  Scanner sc = new Scanner(System.in);

  for(;;){
   System.out.println(“请输入小于2的31次方的正整数:(輸入0結束程序)”);
   int i = sc.nextInt();
   if(i==0){
    System.out.println(“程序结束!”);
    break;
   }else{
    int num = 0;
    if(i>=Math.pow(2, 0) && i<Math.pow(2, 4)){
     num = 1;
    }else if(i>=Math.pow(2, 4) && i<Math.pow(2, 8)){
     num = 2;
    }else if(i>=Math.pow(2, 8) && i<Math.pow(2, 12)){
     num = 3;
    }else if(i>=Math.pow(2, 12) && i<Math.pow(2, 16)){
     num = 4;
    }else if(i>=Math.pow(2, 16) && i<Math.pow(2, 20)){
     num = 5;
    }else if(i>=Math.pow(2, 20) && i<Math.pow(2, 24)){
     num = 6;
    }else if(i>=Math.pow(2, 24) && i<Math.pow(2, 28)){
     num = 7;
    }else if(i>=Math.pow(2, 28) && i<Math.pow(2, 31)){
     num = 8;
    }
    switch(num){
    case 8:
     int i8 = i>>28 & 15;
     String s8 = i8<=9 ? i8+”” : (char)(i8-10+’a’)+””;
     System.out.print(s8);
    case 7:
     int i7 = i>>24 & 15;
     String s7 = i7<=9 ? i7+”” : (char)(i7-10+’a’)+””;
     System.out.print(s7);
    case 6:
     int i6 = i>>20 & 15;
     String s6 = i6<=9 ? i6+”” : (char)(i6-10+’a’)+””;
     System.out.print(s6);
    case 5:
     int i5 = i>>16 & 15;
     String s5 = i5<=9 ? i5+”” : (char)(i5-10+’a’)+””;
     System.out.print(s5);
    case 4:
     int i4 = i>>12 & 15;
     String s4 = i4<=9 ? i4+”” : (char)(i4-10+’a’)+””;
     System.out.print(s4);
    case 3:
     int i3 = i>>8 & 15;
     String s3 = i3<=9 ? i3+”” : (char)(i3-10+’a’)+””;
     System.out.print(s3);
    case 2:
     int i2 = i>>4 & 15;
     String s2 = i2<=9 ? i2+”” : (char)(i2-10+’a’)+””;
     System.out.print(s2);
    case 1:
     int i1 = i & 15;
     String s1 = i1<=9 ? i1+”” : (char)(i1-10+’a’)+””;
     System.out.println(s1);
    }
   } 
  } 
 }  
}

 

自己写的,欢迎各位友友交流挑错,赐教调优方法!

    原文作者:进制转换
    原文地址: https://blog.csdn.net/weixin_40400200/article/details/83242074
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞