把十进制的数字转为任何进制
来源:互联网 发布:手机荧光字软件 编辑:程序博客网 时间:2024/05/18 04:01
今天想到了一个问题,如何把10进制的数转为 1~9 进制的任何进制的数,查看了网友的答案,都是那么高大上,于是我就想设计一个大家都能看的懂的方法。在跑步的时候想到了如何把十进制转为2进制。
根据这个原理:辗转相处法,编写的如下代码。
package me.jea.sort;import java.util.ArrayList;public class DecimalTransform {public static int transform(int number, int decimal) {try {check(number);} catch (RuntimeException e) {return -1;}int result = reverse(number, decimal);return result;}/** * @author jea * @param number * 要被转换的十进制数字 * @param decimal * 要被转换的进制 * @return */private static int reverse(int number, int decimal) {int beiChuShu = number;// 被辗转相除的 被除数int yuShu = -1;// 余数// 创建一个ArrayList,用来记录辗转相除的取余的结果ArrayList<Integer> list = new ArrayList<Integer>();// 辗转相除,直到被除数为0while (beiChuShu != 0) {yuShu = beiChuShu % decimal;//先要记录余数beiChuShu = beiChuShu / decimal;//如果先执行这步,会把被除数修改掉,因此与上面的语句不应该颠倒list.add(yuShu);// 自动装箱}// 把辗转相除的结果反过来连接起来StringBuilder sb = new StringBuilder();for (int i = list.size() - 1; i >= 0; i--) {sb.append(list.get(i));}// 再将sb中的结果转为数字返回int result = Integer.parseInt(sb.toString());return result;}/** * @author jea * @param number * 被检查的数字 * */private static void check(int number) {if (number < 0) {throw new RuntimeException("请输入合法的数字");}}public static void main(String[] args) {int result = transform(16,5);//把十进制的16转为5进制System.out.println(result);//运行结果:31}}
阅读全文
0 0
- 把十进制的数字转为任何进制
- 利用数据结构中的桟 实现十进制 转为 二 到 十六 之间任何进制 的方法
- 任意进制转为十进制
- 把数字转为二进制的字串
- IOS 16进制的String串转为十进制数
- 任何进制转换成十进制
- 十进制转换为任何进制
- hdoj2031十进制转为任意进制
- 1.1进制转换:十进制转为十六进制
- 1.1进制转换:十进制转为二进制
- 把十进制转为二进制到16进制
- 把中文数字转为阿拉伯数字
- 一个简单的把数字转为大写的人民币写法
- 把一千以内的数字转为英文的程序
- C/C++:十进制转为二进制(n进制转为十进制)
- php把全角数字转为半角数字
- 完全正确的十进制转换其他任何进制,朋友帮我改的
- 将十进制的数转换为任何进制的数
- Spark2.0.X算子源码深度剖析之MapPartitionsRDD,绝对让你看清楚算子的计算本质
- Spring集成ActiveMQ消息队列使用
- AES算法
- 机器学习基础(2) 概率论基础
- 【bzoj 1025】游戏(DP)
- 把十进制的数字转为任何进制
- Luogu 1083(借教室)(NOIP 2012)
- Fibonacci数列
- shell脚本ssh登入
- Netty源码分析:PooledByteBufAllocator
- 输出单层结点
- matlab cplex使用
- SPFA的运用
- OpenCV resize函数改变图像的大小