9.进制的讲解

进制:

作用:用于对接其他设备,其他设备采用的进制不一样,例如:计算机是二进制、人是十进制,部分硬件是8进制

含义:十进制:逢十进一

常见进制:二进制、八进制、十进制、十六进制

十六进制:0-9,A-F

在idea里的写法:(JDK7以后才支持)

十进制:默认

二进制:在数值前面以0b开头(b大小写都可以)

八进制:数值前面以0开头

十六进制:在数值前面以0x开头(x大小写都可以)

注意:以上在idea里的展现形式都是以十进制展现的

进制转换:

十进制:

任意进制  转换到   十进制  :  系数 * 基数的 全次幂 相加

十进制  转换到   任意进制  :  除基取余法

任意进制  转换到   十进制 

可以套用下面公式

公式:系数 * 基数的 全次幂 相加

系数:每一 “位” 上的数

基数:几进制就是几

权:从数值的右侧,以0开始,逐个+1增加

例如:二进制转十进制

0b100

拆解:0b为二进制标识

系数:1   0   0

基数:2(当前是二进制)

权:从  右侧  开始,以0为编号,逐个+1

套公式:

0 * 2^0 = 0

0 * 2^1 = 0

1 * 2^2 = 4

最终等式右侧所有结果相加,为十进制4。

同理:

0100 = 64

0x100 = 256

十进制  转换到   任意进制

公式:除基取余法

使用数据源,不断除以基数(几进制,基数就是几),得到余数,直到商为0,再将余数倒着拼起来即可

例如:

十进制60  转到 十六进制 

16  |_60_   

16  |_3_(商)   余数为12

        0(商)   余数为3

余数从下往上取,拼接起来

3  C(由于十六进制的10-15由A-F表示)

所以十进制60 转成 十六进制为3C

二进制:

快速进制转换法(只能用于二进制):8421码(又称BCD码)

二进制数11111111
二进制转十进制1 * 2^71 * 2^61 * 2^51 * 2^41 * 2^31 * 2^21 * 2^11 * 2^0
十进制数1286432168421

byte的取值范围为:-128~127

此处解释一下,为什么用8位数 0000 0000或1111 1111来计算,因为计算机的最小存储单元为字节(byte),一个字节(byte)由8个比特(bit)组成,每一个比特都是二进制位,0和1表示。

由于是由1转过来的,所以只需要看二进制数是否有1,

且十六进制的15最高位为1111,所以取后面(由 “公式:系数 * 基数的 全次幂 相加” 右边往左+1的原因,所以取后面)4位数,叫8421码

例如:

二进制1101

8421码(十进制数)1286432168421
二进制1101

直接将1比对的数值取出后相加(0不取),最终十进制数为8+4+1等于13

所以二进制1101 转十进制为 13

二进制  转  八进制

八进制:将  三个  二进制位  为一组(3个为一组看,每一组都要用新的8421码表看),再进行转换

原因:八进制逢八进一,三个二进制位最多可以表达111,也就是数值7(十进制),如果出现第四位二进制,就超范围了(八进制逢八进一)

8421码(十进制数)8421
二进制1111
结果为7不取421

例如:

十进制60的二进制0b111100  转  八进制

拆解:

三个为一组,每组从新对应8421码

三个为一组:        1 1 1    1 0 0

每组对应8421码:4 2 1    4 2 1

取值相加后每组结果拼接起来:        4+2+1 4+0+0  = 7   4

结果为74

二进制  转  十六进制(注意:十六进制0-9为数字,10-15为英文A-F)

十六进制:将  四个  二进制位  为一组(4个为一组看,每一组都要用新的8421码表看),再进行转换

原因:十六进制逢十六进一,四个二进制位最多可以表达1111,也就是数值15(十进制),如果出现第五位二进制,就超范围了(八进制逢八进一)

8421码(十进制数)168421
二进制11111
结果为15不取8421

例如:

十进制60的二进制0x111100  转  十六进制

拆解:

四个为一组,每组从新对应8421码

四个为一组:        0 0 1 1    1 1 0 0  (前面没有位自动补齐)

每组对应8421码:0 0 2 1    8 4 2 1

取值相加后每组结果拼接起来:        0+0+2+1 8+4+0+0  = 3   C(十六进制数字12以C表示)

结果为3C

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值