进制与进制的换算
常见的进制以及区分表示
二进制与十进制是基础,为了更方便地表示二进制数,引入的八进制和十六进制。
核心概念:按权展开
理解进制转换的关键是“按权展开”。一个任意 R 进制数,其数值等于每一位上的数字乘以 R 的相应次幂,然后相加。这个“权”就是基数(R)的次幂。这个原则适用于所有进制。
以十进制数 123.45 为例:123.45=1×100+2×10+3×1+4×0.1+5×0.01。
十进制数:R=10,R 也被称为基数。数字 1 位于百位,则 1 的权为十的二次方等于一百。
进制
- 二进制
- 数字前面加 0b 或 0B,比如 0b101
- 八进制
- 数字前面加 0,比如 073
- 十进制
- 十六进制
- 数字前面加 0x,比如 0xC3
进制快速查看
int a = 25;
System.out.println(Integer.toBinaryString(a)); //二进制
System.out.println(Integer.toHexString(a)); //十六进制
进制换算
其他进制转换为十进制
- 按权展开就行
十进制转换为其他进制
- 按权展开反向求未知数就行
- 比如求 5 的二进制表示,即 a×4+b×2+c×1=5,求得 a=1,b=0,c=1,则二进制表示为 0b101。
二、八、十六进制快速互转
规则:
- 从小数点开始,向左和向右,每 3 位二进制数分为一组,不足 3 位的用 0 补齐,然后将每组分别转换为对应的八进制数,就是二转八进制。
- 反之每一位八进制数转成三位二进制数,就是八转二进制。
- 换成4位数一组就是二转十六进制。
- 反之每一位十六进制数转成四位二进制数,就是十六转二进制。