进制转换问题---例如把26进制转为10进制
2017-06-03 15:35
295 查看
问题:a-z表示0-25,代表26进制,现在要求把该26进制转为10进制
例如:
输入:ba
输出:26
一个数的每一位都有一个权值,例如十进制数2039
例如:
输入:ba
输出:26
先看如何把十六进制怎么转换成十进制
它可以表示为:2*10^3+0*10^2+3*10^1+9*10^0 那么任何进制的数都一样,例如16进制数8A30E 它就是8*16^4+10*16^3+3*16^2+0*16^1+14*16^0=566030,算出来的值就是这个数对应的十进制数 又例如k进制数abcdef(这是一个6位数) 它就是a*k^5+b*k^4+c*k^3+d*k^2+e*k^1+f*k^0 这样想就十分简单了
十六进制怎么转换成十进制
一个数的每一位都有一个权值,例如十进制数2039它可以表示为:2*10^3+0*10^2+3*10^1+9*10^0 那么任何进制的数都一样,例如16进制数8A30E 它就是8*16^4+10*16^3+3*16^2+0*16^1+14*16^0=566030,算出来的值就是这个数对应的十进制数 又例如k进制数abcdef(这是一个6位数) 它就是a*k^5+b*k^4+c*k^3+d*k^2+e*k^1+f*k^0 这样想就十分简单了
给个题目练习下:
package com.hbut.test; public class Converter { // 2:题目描述 // // 用英文字母a-z来分别表示数值0-25, 形成一个26进制的数值表示法。需要你写一个方法,将用a-z表示的26进制数值的字符串,转化为对应的10进制数值。 // 输入 // 输入数据有多组,每组占一行,包含多个a-z之间的字符。 // 样例输入 // ba // bcd // gibbon // goodboy // // 输出 // 所对应表示的10进制数。 public static Long getNum(String s){ Long sum=0L; for(int i=0;i<s.length();i++){ sum+=(long) ((s.charAt(i)-'a')*Math.pow(26,s.length()-1-i)); } return sum; } public static void main(String[] args) { System.out.println(getNum("gibbon")); } }
输出结果:74962693
相关文章推荐
- 进制转换---由任意进制转为任意进制---NOJ1592
- 进制转换--数字转26字母进制-matlab
- 十进制转成26进制,其中26进制包括26个字母,例如2=‘B’,29==‘AC’,67=‘BO’
- 10进制的进制转换问题
- 题目1208:10进制 VS 2进制(进制转换以及大数保存问题)
- 11.Excel Sheet Column Number(26进制转化为10进制)
- 将10进制整数转为64进制形式的PHP实现
- VS2003项目转为VS2005后ASP.NET ajax不能局部刷新的问题
- 进制转换问题
- oracle中的to_date()24小时进制问题
- 进制转化问题小结
- 问个进制转换的问题 C编程高手进来
- 关于JS中各进制转换问题
- sql语句:保留要害字的问题.例如 size,text,user等
- 数据库远程连接错误26的问题解决,终于搭好工作环境了
- 十进制/十八进制的互转换(此方法应用于所有进制与10进制的转换)
- ASCII码26 在以字符方式读取文件是产生的问题
- 关于2进制,8进制,16进制间的转换问题
- = 问题 = 请问如何把16进制数转化为10进制数显示输出?谢谢!
- .net c# 进制转换 2进制、8进制、10进制、16进制