编程算法基础-2.3进制转换

2.3进制转换

使用int存一个整数时,内存中是用二进制存储的,当要显示的时候,用十进制显示。

任意进制间的转换

n进制转m进制

String s = “2001201102”

3进制转换为5进制

 

先转换为2进制,再转换为5进制

/*
任意进制间的转换
n进制转m进制
String s = “2001201102”
3进制转换为5进制
 
先转换为10进制,再转换为5进制
*/
 
package BinaryTrans;
 
public class NToM {
    public static void main(String[] args) {
       String s = "2001201102";//三进制的一个串
       int STARTSystem = 3;
       int ENDSystem = 5;
      
       //把三进制的串转换为真值,并且用十进制显示
       int n = 0;
        for(int i=0;i5
       n = n/10;
       n % 10 -->3
       n = n/10
       ......*/
       String s2 = "";
       while(true){
           s2 = n%ENDSystem + s2;//五进制转换
           n = n/ENDSystem;
           if(n==0) break;
       }
       System.out.println(s2);
    }
}
2244434

Excel单元格转换

Excel 单元格地址有两种格式:

普通格式,如:A5, BC12

对应的RC格式:R5C1, R12C55

显然,RC格式是直接给出行号和列号

请编程在两种地址格式间转换。

/*
Excel单元格转换
Excel 单元格地址有两种格式:
普通格式,如:A5, BC12
对应的RC格式:R5C1, R12C55
显然,RC格式是直接给出行号和列号
请编程在两种地址格式间转换。
*/
public class ExcelTranslation {
    public static void main(String[] args) {
       String s = "BC12";
       System.out.println(s);
       System.out.println(normalToRC(s));
      
       String s2 = "R5C1";
       System.out.println(s2);
       System.out.println(RCToNormal(s2));
    }
   
    //RC模式转为普通模式
    public static String RCToNormal(String s){
       s=s.substring(1);//将开头的R去掉
       String ss[] = s.split("C");//用C分割串
       int column = Integer.valueOf(ss[1]);//将列号转换为真值(十进制)
       String s2 = "";
       while(true){
           s2 = (char)(column%26 + 64) + s2;//转回26进制,输出char类型字母
           column = column/26;
           if(column==0) break;
       }
       String result = s2+ss[0];
       return result;
    }
   
    //普通模式转为RC模式
    public static String normalToRC(String s){
       int start_digit = 0;//数字的初始位置
       for(int i=0;i
BC12
R12C55
R5C1
A5

你可能感兴趣的:(java,算法,二进制,编程,算法,java)