简介:指进位制,是人们规定的一种进位方式
计算机数据在底层运算,都是进制形式,(二进制居多)
| 二进制 | 逢二进一,借一当二 | 数码:0 1 |
|---|---|---|
| 八进制 | 逢八进一,借一当八 | 数码:0 1 2 3 4 5 6 7 |
| 十进制 | 逢十进一,借一当十 | 数码:0 1 2 3 4 5 6 7 8 9 |
| 十六进制 | 逢十六进一,借一当十六 | 数码:0 1 2 3 4 5 6 7 8 9 a b c d e f |
- Java 中进制的书写格式
| 二进制 | 数值前面以0b开头,字母不区分大小写 |
|---|---|
| 八进制 | 数值前面以0开头 |
| 十进制 | Java中,数值默认是十进制,不需要加修饰 |
| 十六进制 | 数值前面以0x开头,字母不区分大小写 |
注意点:(1)运算或使用时,所有进制都转换为十进制
(2)以上内容是 JDK7 版本以上才被支持
十进制 转换 任意进制任意进制 转换 十进制
- 公式:除基取余
使用源数据,不断的除以基数(几进制,基数就是几)得到余数,直到商为0,
最后将余数倒着拼,得到进制数
- 示例
'-------------------------------十进制 转 十六进制---------------------------------' '100 ==> 十六进制 执行过程: 100 为 源数据 , 基数 = 16 100 / 16 商 = 6 余数 = 4 6 / 16 商 = 0 余数 = 6 '100 的十六进制为 64' '注意:当被除数小于除数时,商为0,余数为被除数
快速进制转换法
公式 : 系数 * 基数的权次幂相加
系数:每一位上的数(个位,十位,百位…)
基数:几进制,就是几
权(位权):从数值的右侧开始,以0开始,逐个 + 1 (类似反转的索引)
注意:次幂 == 次方
示例
'-------------------------------二进制 转 十进制-----------------------------------' 'ob100 ==> 十进制 (ob 只是修饰符) 执行过程: 系数: 1 0 0 (三位系数) 基数: 2 二进制数据: 1 0 0 权: 2 1 0 1 * 2 ^ 2 = 4 //应先算次方 0 * 2 ^ 1 = 0 //0 * 任意数都为0 0 * 2 ^ 0 = 0 //0 * 任意数都为0 4 + 0 + 0 = 4 //相加 'ob100 ==> 十进制为 4
- 8421 码
简介:别称BCD码,是BCD代码中常用的一种
二进制快速转十进制概述:直接将二进制数值套入其中,0对应的值不取,1对应的值取出并相加
示例:
'将 ob10101010 转为十进制' 过程分析: 8421码表: 128 64 32 16 8 4 2 1 二进制数值: 1 0 1 0 1 0 1 0 //1对应的值取出 128 32 8 2 相加: 128 + 32 + 8 + 2 = 170二进制快速转八进制概述:将8421码表三个二进制位看为一组,再进行转换,
0对应的值不取,1对应的值取出相加,将值拼起来
原因:八进制逢八进一,三个二进制位最多表示为111 , 也就是数值7,如果出现第四位,就超出范围
示例:
'将 0b111100 转为八进制' 过程分析: 8421码表: 4 2 1 | 4 2 1 | 4 2 1 二进制数值: 0 0 | 1 1 1 | 1 0 0 0 4 2 1 4 4+2+1=7 4 74 //拼起来二进制快速转十六进制概述:将8421码表四个二进制位看为一组,再进行转换
0对应的值不取,1对应的值取出相加,将值拼起来
**原因:十六进制逢十六进一,四个二进制位最多表示为1111 , **
也就是数值15,如果出现第四位,就超出范围
示例:
'将 0b10110110 转为十六进制' 过程分析: 8421码表:8 4 2 1 | 8 4 2 1 二进制数值: 1 0 1 1 | 0 1 1 0 8 2 1 4 2 8+2+1=11 4+2=6 b6 //11对应的十六进制数 为b



