JAVA中的进制以及转换

进制介绍
进制就是人为指定的进位制,X进制就是逢X进一

我们最常见的进制就是十进制,当然,在计算机中最常见的就是二进制,除此之外,还有八进制、十六进制等。

首先我们就要了解一下这些进制的组成成分:

二进制由0和1组成,逢2进1

八进制由0~7组成,逢8进1

十进制由0~9组成,逢10进1

十六进制由0 ~ 9和a ~ f(不分大小写)组成

进制的前缀
这么多进制有时会导致我们的数据变得混乱,举个例子:

我有一个数:1001,那么问题来了,我要表示的究竟是十进制的一千零一还是二进制的1001呢?不仅如此,八进制和十六进制的1001也有不同的表示,那这就会造成数据的混乱了。

为了解决这个问题,会给不同进制的数带上不同的前缀,具体如下

进制    前缀    举例
二进制    0b    0b1001
八进制    0    01001
十进制    没有前缀默认为十进制    1001
十六进制    0x    0x1001
通过给数据加上前缀,我们就可以很好地区分它到底是一个什么进制的数据,就解决了数据混乱的问题

那么接下来我们就要思考,既然我们经常使用的是十进制,而计算机只能读懂二进制,那么十进制数字是怎么转换成二进制的呢?下面我们我们就来介绍一下进制之间的互相转换。

进制转换
进制的转换可以分为三大类:十进制到任意进制的转换、任意进制到十进制的转换、任意进制之间的转换,接下来我们一一介绍:

十进制转换为任意进制
十进制转换为其他进制主要是使用 除基取余 直到商为0 余数反转的方法,这个”基“其实就是你要转换为X进制,这个基就是X。通过图片清楚的看一下:

通过这种步骤,我们就可以实现从十进制到其他进制的转换,这里我向二进制转换,所以除2,如果想转为其他进制,相应的除8、10、16即可。

任意进制转换为十进制
要将任意进制转为十进制,我们使用的是位权展开法。

我们先用一组十进制数据看一下:

1234=1000+200+30+4

=1 *10^3+2 *10^2+3 *10^1+4 *10^1

=1000+200+30+4

=1234

不难发现每组数据由三部分组成:

系数:每一位对应的数值

基数:X进制到十进制转换,基数就为X

权:我们对每一位从右向左开始编号,并且编号是从0开始的,就得到了每一位上的”权“

每一组的数据=系数*基数^权


————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值