码迷,mamicode.com
首页 > 其他好文 > 详细

任意进制转10进制

时间:2018-05-19 21:26:31      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:ring   print   数位   ted   oid   展开   sys   bsp   change   

十进制中的数位排列是这样的…… 万 千 百 十 个 十分 百分 千分……
R进制中的数位排列是这样的……R^4 R^3R^2 R^1 R^0 R^-1 R^-2 R^-3……
 
所以任意进制转为10进制直接就按权展开就行
即    十进制   9876=9×10^3+8×10^2+7×10^1+6×10^0 = 9000 + 800 + 70 + 6 = 9876
       二进制   1011  =    1×2^3+0×2^2+1×2^1+1×2^0   =  8+2+1  =  11
 
所以直接从最后一位开始,加上每一位的10进制,最终的和就是待转换数的十进制
 1 import java.util.Scanner;
 2 
 3 public class Change {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         Scanner cin = new Scanner(System.in);
 8         System.out.print("输入待转换的数和其进制:");
 9         int OldNum = cin.nextInt();//待转换成10进制的数
10         int x = cin.nextInt();//待转换数的进制
11         int num = change(OldNum, x);
12         System.out.println(num);
13     }
14     public static int change(int n, int x) {
15         int num = 0;
16         int k = 1;
17         while(n!=0) {
18             int m = n % 10;//取最后一位数
19             num += m * k;
20             n = n / 10;
21             k *= x;
22         }
23         return num;
24     }
25 }

 

任意进制转10进制

标签:ring   print   数位   ted   oid   展开   sys   bsp   change   

原文地址:https://www.cnblogs.com/forever-snow/p/9061604.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!