JAVA二进制 十进制 八进制等是怎么转换的

(1)、十进制->十进制

(高位)765(低位) = 510^(1-1) + 610^(2-1) + 7*10^(3-1) = 765;说明:括号为次方值;

十进制其实是每位的数字乘以10的当前位的倒数位置-1的值。

(2)、二进制->十进制

(高位)1011(低位) = 12^(1-1) + 12^(2-1) + 02^(3-1) +12^(4-1) = 11;

二进制转十进制其实是每位的数字乘以2的当前位的倒数位置-1的值。

(3)、八进制->十进制

0632 = 28^(1-1) + 38^(2-1) + 68^(3-1) = 2 + 24 + 664 = 26 + 384 = 410;

(4)、十六进制->十进制

0x11 = 116^(1-1) + 116^(2-1) = 1 + 16 = 17;

(5)、二进制->八进制(由于三位最大二进制111的十进制值为7,而八进制是逢8进1,所以二进制转换成八进制时可以采用3位3位算)

101011 = 101-011 = 5 – 3 = 053;

(6)、二进制->十六进制

10011101 = 1001 – 1101 = 9 – D(13) = 0x9D;

结论:

八进制数,其实就是二进制位中的3个二进制位为一个八进制位,二进制位不够分,左边高位补零即可;

十六进制,其实就是二进制位中的4个二进制位为一个十六进制位;

(7)、十进制->二进制

十进制除于2求余,倒序读成二进制;

这个的意思是::将一个十进制数除以二,得到的商再除以二,依此类推直到商等于一或零时为止,倒取将除得的余数,即换算为二进制数的结果。

**二进制转十进制快速方法 **

以8位 来演示:

1.第一种:

00000001      1
00000010      2
00000100      4
00001000      8
00010000      16
00100000      32
01000000      64
10000000      128

2.第二种:

00000001      1
00000011      3
00000111      7
00001111      15
00011111      31
00111111      63
01111111      127

3.第三种

10000000     128
11000000     192
11100000     224
11110000     240
11111000     248
11111100     252
11111110     254

举个例子: 11101011

可分为:

11100000(上面第三种类型) 224

00001000(上面第一种类型) 8

00000011(上面第二种类型) 3

我们通过记住上面三种类型的转换,再用加 法(加法口算你会吧)立即得到结果:235

方法二:

熟记以下排列,其实很Easy了,从右往 左,依次是前一个数的2倍:

256 128 64 32 16 8 4 2 1

随便写个数字比如48

48 = 32 + 16,所以在32 和 16所在的位置为1,其余为0,

转为2进制就是

256 128 64 32 16 8 4 2 1

0 0 0 1 1 0 0 0 0

二进制转十进制就更简单了,

比如随便写的一串 01111101

先写上 : 0 1 1 1 1 1 0 1

然后填充 128 64 32 16 8 4 2 1

十进制为 64+32+16+8+4+1=125

转载于:https://my.oschina.net/u/1024107/blog/868311

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值