Java 十进制 转 二进制、八进制、十六进制
来源:互联网 发布:保税货物需要上传数据 编辑:程序博客网 时间:2024/05/19 02:26
JDK中已经帮我们实现了十进制 转 二进制、八进制、十六进制的功能,使用Integer.toBinaryString(x)、Integer.toOctalString(x)、Integer.toHexString(x) 即可将x转换为对应的二进制、八进制、十六进制形式。我们也可以通过位移运算来实现求二进制、八进制、十六进制的功能。
示例代码
@Testpublic void test02(){//使用JDK实现int x = -99;System.out.println(x+"="+Integer.toBinaryString(x));System.out.println(x+"="+Integer.toOctalString(x));System.out.println(x+"="+Integer.toHexString(x));}@Testpublic void test01(){int x = -99;System.out.println(x+"="+toBin(x));System.out.println(x+"="+toBa(x));System.out.println(x+"="+toHex(x));}/* * 十进制-->二进制 */public String toBin(int num) {return trans(num, 1, 1);}/* * 十进制-->八进制 */public String toBa(int num) {return trans(num, 7, 3);}/* * 十进制-->十六进制 */public String toHex(int num) {return trans(num, 15, 4);}public String trans(int num, int base, int offset) {if (num == 0) {return null;}char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A','B', 'C', 'D', 'E', 'F' };char[] arr = new char[32];int pos = arr.length;while (num != 0) {int temp = num & base;arr[--pos] = chs[temp];num = num >>> offset;}StringBuilder sb = new StringBuilder();for (int x = pos; x < arr.length; x++) {sb.append(arr[x]);}return sb.toString();}
最近在做项目时需要将一个byte数组 按6bit一组进行重新组合,研究了一下实现了这个功能
实现代码
@org.junit.Testpublic void test02(){byte b = 65;//byte b = -86;String str = getAllBinaryBits(b);System.out.println(str);}/** * 将每一个字节转换为8位二进制字符串形式 * @param b * @return */private String getAllBinaryBits(byte b) {StringBuffer sb = new StringBuffer();sb.append((b & 128)==0?0:(b & 128)>>7);sb.append((b & 64)==0?0:(b & 64)>>6);sb.append((b & 32)==0?0:(b & 32)>>5);sb.append((b & 16)==0?0:(b & 16)>>4);sb.append((b & 8)==0?0:(b & 8)>>3);sb.append((b & 4)==0?0:(b & 4)>>2);sb.append((b & 2)==0?0:(b & 2)>>1);sb.append(b & 1);//System.out.println(sb.toString());return sb.toString();}
要转换byte数组,套上一个for循环即可
- java 进制换转 十进制 转 二进制 八进制 十六进制
- Java 十进制 转 二进制、八进制、十六进制
- java十进制转二进制、八进制、十六进制
- 十进制转二进制 八进制 十六进制
- 十进制转二进制,八进制,十六进制
- 十进制二进制 八进制 十六进制
- 十进制二进制 八进制 十六进制
- 十进制 二进制 八进制 十六进制
- 二进制&八进制&十进制&十六进制
- 二进制 十进制 八进制 十六进制
- 二进制 八进制 十进制 十六进制
- 二进制 八进制 十进制 十六进制
- 二进制,八进制,十进制,十六进制
- 二进制 八进制 十进制 十六进制
- 二进制、八进制、十进制、十六进制
- 十进制数转二进制、八进制、十六进制数Java代码
- Java byte[] 字节数组 转 二进制 八进制 十进制 十六进制字符串
- java 十进制转二进制、八进制、十六进制代码复用
- 一个线程交替运行的考题
- ASP.NET多文件批量打包下载
- android屏幕 单位转换
- cocos2d-x跨android&ios平台开发入门教程
- [DLL]创建和使用静态库Lib
- Java 十进制 转 二进制、八进制、十六进制
- Myeclipse_Struts+Hibernate
- for循环占用的指令周期问题
- 未来 Firefox 将不自动运行所有插件
- C语言中的柔性数组结构
- Linux下Fork与Exec使用
- 远程访问virtualbox当中的osx的方法
- Versions 配合 Xcode 4.5 的 FileMerge
- Linux设备模型(总线、设备、驱动程序和类)之四:class_register