您的位置:首页 > 理论基础

java、计算机进制转换,二进制 十进制 十六进制 的进制等等!

2012-09-03 18:17 344 查看
2进制CPU使用,8进制很少见,10进制适合人类使用,16进制适合编译器和底层程序员使用,希望对你有所帮助! 以下文章是自己从别的地方复制粘贴过来, 总结了一下。 虽然看着有点乱, 但是想学 ,就能看懂。 若是有什么问题 , 可直接在下方给我留言!!!

public class Sun {
public static void main(String[] args) {
System.out.println(Integer.toHexString(20)); //十进制转成十六进制
System.out.println(Integer.toBinaryString(20));//十进制转成二进制
System.out.println(Integer.toOctalString(20));//十进制转成八进制
System.out.println(Integer.valueOf("FFFF",16).toString());//十六进制转成十进制
System.out.println(Integer.valueOf("5",8).toString());//八进制转成十进制
System.out.println(Integer.valueOf("0101", 2).toString());//二进制转十进制
}
}


由于Unicode兼容ASCII(0~255),因此,上面得到的Unicode就是ASCII。

至于转换成二进制或其他进制,Java API提供了方便函数,你可以查Java的API手册。

以字符a的ASCII为例:

int i = 'a';

String iBin = Integer.toBinaryString(i);//二进制

String iHex = Integer.toHexString(i);//十六进制

String iOct = Integer.toOctalString(i);//八进制

String iWoKao = Integer.toString(i,3);//三进制或任何你想要的35进制以下的进制

DEC

[集]java中进行二进制,八进制,十六进制,十进制间进行相互转换

十进制转成十六进制:

Integer.toHexString(int i)

十进制转成八进制

Integer.toOctalString(int i)

十进制转成二进制

Integer.toBinaryString(int i)

十六进制转成十进制

Integer.valueOf("FFFF",16).toString()

八进制转成十进制

Integer.valueOf("876",8).toString()

二进制转十进制

Integer.valueOf("0101",2).toString()

有什么方法可以直接将2,8,16进制直接转换为10进制的吗?

java.lang.Integer类

parseInt(String s, int radix)

使用第二个参数指定的基数,将字符串参数解析为有符号的整数。

examples from jdk:

parseInt("0", 10) returns 0

parseInt("473", 10) returns 473

parseInt("-0", 10) returns 0

parseInt("-FF", 16) returns -255

parseInt("1100110", 2) returns 102

parseInt("2147483647", 10) returns 2147483647

parseInt("-2147483648", 10) returns -2147483648

parseInt("2147483648", 10) throws a NumberFormatException

parseInt("99", 8) throws a NumberFormatException

parseInt("Kona", 10) throws a NumberFormatException

parseInt("Kona", 27) returns 411787

<!-- 转换的过程 -->

1. 十进制(25.625 )转二进制:

整数部分:

25/2=12......1

12/2=6 ......0

6/2=3 ......0

3/2=1 ......1

1/2=0 ......1

然后我们将余数按从下往上的顺序书写就是:11001,那么这个11001就是十进制25的二进制形式

小数部分:

0.625*2=1.25

0.25 *2=0.5

0.5 *2=1.0

(以上小数转换不要误导,0.25 和 0.5 取的是上一次运算出来的小数部分)

然后我们将整数部分按从上往下的顺序书写就是:101,那么这个101就是十进制0.625的二进制形式

所以:(25.625)(十)=(11001.101)(二)

2. 二进制(11001.101)转十进制:

整数部分: 下面的出现的2(x)表示的是2的x次方的意思

1*2(4)+1*2(3)+0*2(2)+0*2(1)+1*2(0)=25

小数部分:

1*2(-1)+0*2(-2)+1*2(-3)=0.625 (另外数学不好的同志记住: 2的负一次方是 1/2 。 8的负一次方是1/8)

所以:(11001.101)(二)=(25.625)(十)

二进制转化为十进制是这样的:

这里可以用8421码的方法.这个方法是将你所要转化的二进制从右向左数,从0开始数(这个数我们叫N),在位数是1的地方停下,并将1乘以2的N次方,最后将这些1乘以2的N次方相加,就是这个二进数的十进制了.

还是举个例子吧:

求110101的十进制数.从右向左开始了

(1) 1乘以2的0次方,等于1;

(2) 1乘以2的2次方,等于4;

(3) 1乘以2的4次方,等于16;

(4) 1乘以2的5次方,等于32;

(5) 将这些结果相加:1+4+16+32=53

3. 十进制(25.625)转八进制

整数部分:

25/8=3......1

3/8 =0......3

然后我们将余数按从下往上的顺序书写就是:31,那么这个31就是十进制25的八进制形式

小数部分:

0.625*8=5 (这里如果相乘得到的数含有小数,则继续用小数部分乘以8......)

然后我们将整数部分按从上往下的顺序书写就是:5,那么这个0.5就是十进制0.625的八进制形式

所以:(25.625)(十)=(31.5)(八)

4. 八进制(31.5)转十进制:

整数部分:

3*8(1)+1*8(0)=25

小数部分:

5*8(-1)=0.625

所以(31.5)(八)=(25.625)(十)

5. 十进制(25.625)转十六进制 :

再将这个之前, 先说明: ABCDEF 分别代表 (10、11、12、13、14、15)

整数部分:

25/16=1......9

1/16 =0......1

然后我们将余数按从下往上的顺序书写就是:19,那么这个19就是十进制25的十六进制形式

小数部分:

0.625*16=10(即十六进制的A或a)

然后我们将整数部分按从上往下的顺序书写就是:A,那么这个A就是十进制0.625的十六进制形式

所以:(25.625)(十)=(19.A)(十六)

6. 十六进制(19.A)转十进制:

整数部分:

1*16(1)+9*16(0)=25

小数部分:

10*16(-1)=0.625

所以(19.A)(十六)=(25.625)(十)



以上纯属个人制作, 若有问题不要喷, 请留言本人。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐