算法基础——2.3进制变换

例一:

[java]  view plain copy
  1. /* 
  2.   任意进制间的转换 
  3.   n 进制转 m 进制 
  4.    
  5.   String s = "2001201102"; 
  6.   3进制转为5进制 
  7. */  
  8.   
  9. public class T1  
  10. {  
  11.     public static void main(String[] args)  
  12.     {  
  13.         String s = "2001201102";  
  14.         int n = 0;  
  15.         for(int i=0; i
  16.             n = n*3 + (s.charAt(i)-'0');  
  17.         }  
  18.           
  19.         System.out.println(n);  
  20.           
  21.         String s2 = "";  
  22.         for(;;){  
  23.             if(n==0break;  
  24.             s2 = (n%5) + s2;  
  25.             n = n / 5;  
  26.         }  
  27.           
  28.         System.out.println(s2);  
  29.     }  
  30. }  

例二:

[java]  view plain copy
  1. /*第02讲-进制的转换_编程 
  2. 编程 
  3. Excel 单元格地址有两种格式: 
  4. 普通格式,如:A5, BC12 
  5. 对应的RC格式:R5C1, R12C55 
  6. 显然,RC格式是直接给出行号和列号 
  7. 请编程在两种地址格式间转换。*/  
  8. //普通格式的列是用字母表示的26进制数,BC =  ('B' - 'A' + 1) * 26 + ('C' - 'A'  + 1);  
  9. public class C3 {  
  10.     public static void main(String[] args) {  
  11.         String s = "BCA1234";  
  12.         char []c = s.toCharArray();  
  13.         int row = 0 ,clum = 0//行号和列号  
  14.           
  15.         int i = 0;  
  16.         while (c[i] >= 'A' && c[i] <= 'Z' &&  i < c.length){//转换列  
  17.             clum = clum * 26 + (c[i] - 'A'  + 1);  
  18.             ++i;  
  19.         }  
  20.   
  21.         //转换行  
  22.         while (i < c.length){  
  23.             row = row * 10 + (c[i] - '0');  
  24.             i++;  
  25.         }  
  26.           
  27.         String s2 = "R" + row + "C" + clum;  
  28.         System.out.println(s2);  
  29.     }  
  30.   
  31. }  

你可能感兴趣的:(编程算法基础(java))