二进制、八进制、十进制、十六进制之间的转换
来源:互联网 发布:工业企业数据库2014 编辑:程序博客网 时间:2024/05/02 01:43
最近在研究图像识别的时候遇到进制之间的转换,虽然之前也了解基二进制、八进制、十进制、十六进制之间转换的基本原理,但还没有在java里对其进行实现过。于是就对其进行了一翻研究,现将自己学习的总结与大家分享一下。
基本原理
二进制——>十进制
1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13
八进制——>十进制
1101(8)=1*8^0+0*8^1+1*8^2+1*8^3=1+0+64+512=577
425(8) = 5*8^0+2*8^1+4*8^2 = 5+16+256=277
十六进制——>十进制
1101(16)=1*16^0+0*16^1+1*16^2+1*16^3=1+256+4096=4353
AF(16) = 15*16^0 + 10*16^1 = 15+160=175
二进制——>八进制
(1100100)2=(001 100 100)2=(1 4 4)8=(9)2
二进制——>十六进制
1000 1001 1010 1011 1100 1101 1110 1111 =(89ABCDEF)16
java实现
在java里Integer、Long这两个类里都以下三个方法:
//将i转换成二进制
toBinaryString(long i);
toBinaryString(int i);
//将i转换成十六进制
toHexString(long i);
toHexString(int i);
//将i转换成八进制
toOctalString(long i);
toOctalString(int i);
Example1:
System.out.println(Long.toBinaryString(11));System.out.println(Long.toOctalString(11));System.out.println(Long.toHexString(11));
结果如下:
1011
13
B
Integer、Long两个类里都将字符串转换成各种不同进制的方法:
parseInt(String s, int radix);
parseLong(String s, int radix);
//s是要被转换的字符串;radix要转换成的进制基数,如2(进制)、8(进制)、16(进制)等,也可以是其它非常见的进制,如7进制,12进制。
如:
Long l = Long.parseLong("111", 2);
表示把”111”以2进制的转化成long长整型数
long l =Long.parseLong("ff", 16);
表示把”ff”以16进制的转化成long长整型数
Example2:
System.out.println(Long.parseLong("ff", 16));System.out.println(Long.parseLong("74", 8));System.out.println(Long.parseLong("111", 2));
结果如下:
255
60
7
此外,BigInteger(大整数)也可以将十进制转换成二进制。
BigInteger(String val, int radix);
//表示以字符串val创建一个radix进制的BigInteger对象
toString(int radix)
//将这个大整数以radix进制表示
Example3:
BigInteger bi = new BigInteger("1011", 2);System.out.println(bi);System.out.println(bi.toString(8));System.out.println(bi.toString(16));
结果如下:
11
13
b
- 十进制、二进制、八进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 十进制,二进制,八进制,十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制,八进制,十进制,十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间的转换
- Android 4.0 本地doc浏览速度慢的解决方法
- c#-Invoke反射简单举例
- hdu1102 Constructing Roads 最小生成树+prim
- 初始化过程
- 加权编辑距离
- 二进制、八进制、十进制、十六进制之间的转换
- MyEclipse中文乱码,编码格式设置,文件编码格式
- 网络安装ubuntu
- 例题3-4
- 关于输入流状态函数cin.eof()的问题
- 杨辉三角
- List of USB ID's(2012-09-20), PCI Vendors and Devices(2012-11-13)
- c++调用C#
- cout.setf()是用来设志位的,cout.precision()是用来设置精度的