四大进制--详解--以及进制转换规则

  • 进制介绍
    对于整数, 有四种表达方式:
  1. 二进制BIN: 0,1 , 满2进1.以0b或0B开头

所谓2进制就是使用0和1来表示一个数, 满2进1如果在开发中看到有这种写法: int n1 = 0b1010; 这种写法没有错, 这是二进制的一种表示方式

  1. 十进制DEC: 0-9, 满10进1

十进制就是0-9来表示一个数, 满10进1

  1. 八进制OCT: 0-7, 满8进1. 以数字0开头表示.

比如 int n3 = 01010; 代表它是用八进制来表示一个数的

  1. 十六进制HEX: 0-9及A(10)-F(15), 满16进1. 以0x或0X开头表示. 此处的A-F不区分大小写.

十六进制它是用0-9以及A(10)-F(15)来表示一个数的, 以0x或0X开头表示 比如A表示10, B表示11, C表示12, D表示13, E表示14, F表示15, 到了15过后16就没有了因为它满16进1

  • 举例说明
        int n1 = 0b1010; //二进制的表示方式
        int n2 = 1010; //十进制
        int n3 = 01010; //八进制
        int n4 = 0x10101; //0X10101 十六进制

        System.out.println("n1 =" + n1);
        System.out.println("n2 =" + n2);
        System.out.println("n3 =" + n3);
        System.out.println("n4 =" + n4);

  • 进制的图示
十进制十六进制八进制二进制
0000
1111
22210
33311
444100
555101
666110
777111
88101000

进制转换(基本功)

  • 进制转换介绍

第一组

  1. 二进制转十进制

规则:

从最低位(右边)开始, 将每个位上的数提取出来, 乘以2的(位数-1)次方, 然后求和.

案例:请将 0b1011 转成十进制的数
0b1011 = 1 * 2的(1-1)次方 + 1 * 2 的(2 - 1)次方 + 0 * 2的(3-1)次方 + 1 * 2的(4-1)次方 = 1 + 2 + 0 + 8 = 11

  1. 八进制转十进制

规则:

从最低位(右边)开始, 将每个位上的数提出来, 乘以8的(位数-1)次方,然后求和.

案例: 请将 0234 转成 十进制的数
0234 = 4 * 8 ^ 0 + 3 * 8 ^ 1 + 2 * 8^2= 4 + 24 + 128 = 156

  1. 十六进制转十进制

规则:

从最低位(右边)开始, 将每个位上的数提取出来, 乘以16的(位数-1)次方, 然后求和

案例: 请将 0x23A 转成 十进制的数
0x23A = 10 * 16^0 + 3 * 16 ^ 1 + 2 * 16 ^ 2 =10 +48 + 64 + 512 = 570


第二组

  1. 十进制转二进制

规则:

将该数不断除以2, 直到商为0为止, 然后将每步得到的余数倒过来, 就是对应的二进制

案例: 请将 34 转成 二进制的数

34 = 34 ➗ 2 = 17 余数为 0 再将 17 ➗ 2 = 8 余数为1 再将 8 ➗2 = 4 余数为0 再将 2 除以 2 商1 余数为 0 然后反过来 为 = 0B100010 , 她一共有6位但是我们一个字节是我们存储的基本单位一个字节有8位所以在这里0B后还要再加两个0, 最终得到的二进制为0B00100010

  1. 十进制转八进制

规则:

将该数不断除以8, 直到商为0为止, 然后将每步得到的余数倒过来, 就是对应的八进制

案例: 请将 131 转成 八进制的数

131 ➗8 商为 16 余数为 3 , 再 ➗8 , 16 ➗ 8 商为 2 余数为0 最后得到的8进制的数为 0203

  1. 十进制转十六进制

规则:

将该数不断除以16, 直到商为0为止, 然后将每步得到的余数倒过来, 就是对应的十六进制

案例: 请将 237转成 十六进制的数

237➗16 商为 14 在16进制里 14对应的字母是E 余数为 13 , 在 16 进制里 13对应的字母是 D ,所以说结果是 0xED


第三组

  1. 二进制转八进制

规则:

从低位开始, 将二进制数每三位一组, 转成对应的八进制数即可.

案例: 请将 0b11010101 转成 八进制的数

每三个一组 101(5) => 为什么是5? 因为第一个1代表1 , 第二个1代表2, 第三个1代表四所以4加一等于五

010(2) => 0就是0 1为2 再一个0还是0所以为2

11(3)

结果为 0325

  1. 二进制转十六进制

规则:

从低位开始, 将二进制数每四位一组, 转成对应的十六进制数即可.

案例: 请将 0b11010101 转成 十六进制的数

每四个一组 0101(5) => 0x

1101(13) => 13为D 所以 1101(D)

11(3)

结果为 0325


第四组

  1. 八进制转二进制

规则:

将八进制数每1位, 转成对应的3位的一个二进制数即可.

案例: 请将 0237 转成 二进制的数

02(010)3(011)7(111) = 0b10011111

  1. 十六进制转二进制

规则:

将十六进制数每1位, 转成对应的4位的一个二进制数即可.

案例: 请将 0x23B 转成 二进制的数

0x2(0010)3(0011)B(1011) = 0b001000111011

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值