首页 > 代码库 > 自己实现10进制转2进制和16进制
自己实现10进制转2进制和16进制
1 public class Test { 2 3 public static void main(String[] args) { 4 System.out.println(toBinary(9)); 5 System.out.println(toHex(559)); 6 System.out.println(Integer.toBinaryString(9)); 7 System.out.println(Integer.toHexString(559)); 8 /*1001 9 22F10 100111 22f*/12 }13 14 public static String toBinary(int n){15 StringBuilder temp = new StringBuilder();16 while(n/2 >=1 || n%2 == 1){//除2取余, (|| n%2 == 1) 在次为了补上最后一个0或者117 temp.append(n%2);18 n = n/2;19 }20 return temp.reverse().toString();21 }22 /**23 10进制转16进制:24 将给定的十进制整数除以基数16,余数便是等值的16进制的最低位。25 将上一步的商再除以基数16,余数便是等值的16进制数的次低位。26 重复上一步骤,直到最后所得的商等于0为止。各次除得的余数,便是16进制各位的数,最后一次的余数是最高位27 */28 public static String toHex(int n){29 /*思路:除16取余*/ 30 StringBuilder temp = new StringBuilder();31 while(n/16 >= 1){32 int aa = n/16;33 int bb = n%16;34 //0123456789 10 11 12 13 14 1535 //0123456789 A B C D E F36 String str = "";37 if(bb == 10){38 str = "A";39 }else if(bb == 11){40 str = "B";41 }else if(bb == 12){42 str = "C";43 }else if(bb == 13){44 str = "D";45 }else if(bb == 14){46 str = "E";47 }else if(bb == 15){48 str = "F";49 }else{50 str = bb+"";51 }52 temp.append(str);53 n = aa;54 if(n/16 < 1){//补上最后一位55 temp.append(n);56 }57 }58 return temp.reverse().toString();59 }60 }
自己实现10进制转2进制和16进制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。