进制转换原理
2015-12-19 23:16
387 查看
进制转换原理
//实现十进制转换为十六进制 //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 //0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F /*什么时候使用数组呢? 如果数据出现了对应关系,而且对应关系的一方是有序的数字编号,并作为角标使用。这时必须想到数组, 就可以将这些数据存储到数组中。根据运算的结果作为角标直接去查数组中对应的元素。 这种方式,称为:查表法。 */ public class TransDemo { public static void main(String[] agrs) { int num = 60; toHex(num); toHex_2(num); toBinary(6); toOctal(num); } public static void toHex(int num) { if(num==0) { System.out.println("0"); return; } char[] chs={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; for(int x=0; x<8; x++) { int temp = num & 15; System.out.print(chs[temp]); num = num >>> 4; } } //进制转换原理整合 public static void trans(int num, int base, int offset) { if(num==0) { System.out.println("0"); return; } char[] chs={'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; char[] arr = new char[32]; //二进制达到32位 int pos = arr.length; while(num != 0) { int temp = num & base; arr[--pos] = chs[temp]; //数组从后往前存储 num = num >>> offset; } //System.out.println("pos=" + pos); for(int x=pos; x<arr.length; x++) //从位置pos往后输出数组 { System.out.print(arr[x]); } System.out.println(); } //十进制----十六进制 public static void toHex_2(int num) { trans(num, 15, 4); } //十进制------二进制 public static void toBinary(int num) { trans(num, 1, 1); } //十进制-----八进制 public static void toOctal(int num) { trans(num, 7, 3); } }
或者使用java的包
import java.lang.*; System.out.println(Integer.toBinaryString(60)); System.out.println(Integer.toHexString(60)); System.out.println(Inter.toOctalString(60));
相关文章推荐
- 加速Gradle构建项目
- autorelease自动释放池
- 报错:Could not find method android.view.ViewTreeObserver.removeOnGlobalLayoutListener
- hdu 1698 Just a Hook(线段树+lazy优化)
- 蓝懿第一个练习日,预习objec—c基础概念
- java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 错误
- vi的用法
- 在Unity中接入Xbox360手柄
- java中int和Integer的区别
- maven工程开启jetty调试
- 网络编程2-UDP编程(DatagramSocket)
- HDU1261 大数
- python 获取句柄,关闭进程
- ping过程分析
- 杂谈之近期总结
- c++ string 转 char* const char* char[]
- 认识固件库(一)
- [转]js中confirm实现执行操作前弹出确认框的方法
- Android布局问题: No resource found that matches the given name (at 'layout_above' with value @id/tv)
- C语言SOCKET学习