十进制转二进制,八进制,十六进制(查表法)
2016-03-14 22:07
267 查看
/* * 进制的转换 * 需求:十进制-->二进制 * 十进制-->八进制 * 十进制-->十六进制 * 思路: 查表法 * * */ import java.util.Scanner; public class youhua { public static void main(String[] args){ Scanner in = new Scanner(System.in); int jinzhi = in.nextInt(); //十进制转几进制 int num = in.nextInt(); //要转的数 switch(jinzhi){ case 2: toBin(num); break; case 8: toBa(num); break; case 16: toHex(num); break; default: System.out.println("error!"); } } //十进制-->二进制 public static void toBin(int num){ trans(num, 1, 1); } //十进制-->八进制 public static void toBa(int num){ trans(num, 7, 3); } //十进制-->十六进制 public static void toHex(int num){ trans(num, 15, 4); } public static void trans(int num, int base, int offset){ char[] chs = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; char[] arr = new char[8]; int pos = arr.length; int temp; while(num != 0){ temp = num&base; //取低几位 arr[--pos] = chs[temp]; // 存入数组 num = num>>>offset; //除以进制数 } for(int i=pos; i<arr.length; i++) System.out.print(arr[i]); } }
相关文章推荐
- Android中的一些基础知识(三)
- Linux下Nginx+tomcat应用系统性能优化
- C++编译期多态与运行期多态
- iOS 面试题 (一)
- 矩阵分解——三角分解(Cholesky 分解)
- 编译错误的处理及译编过程及清理
- java开发--配置ssh
- 使用 Fiddler 代理调试本地手机页面
- Android 时间轴的实现
- 类加载器、双亲委派机制
- HDU 1257 最少拦截系统【贪心】【DP】
- 用javascript模拟用户发起浏览器请求
- 最小二乘法拟合圆
- Problem D: 分数减法——结构体
- 利用JPcap进行抓包
- HUD 1016-Prime Ring Problem
- 最小二乘法拟合圆
- 禁用iOS的UIView长按默认操作
- Python设计模式(7)-建造者模式
- Spring文档学习--异常处理(Handling exceptions)以Shiro为例