进制
免责声明:java基础资料均来自于韩顺平老师的《循序渐进学Java零基础》教案,具体视频内容可以去B站观看,这些资料仅用于学习交流,不得转载用于商业活动
1.进制
1.1 进制介绍
对于整数,有四种表示方式:
- 二进制:0,1,满2进1。以0b或者0B开头。
- 十进制:0-9,满10进1
- 八进制:0-7,满8进1。以数字0开头表示
- 十六进制:0-9及A(10)-F(15),满16进1。以0x或者0X开头表示。此处的A-F不区分大小写
public class BinaryTest { //演示四种进制 public static void main(String[] args) { //二进制 int n1=0b1010; //十进制 int n2=1010; //八进制 int n3=01010; //十六进制 int n4=0X10101; System.out.println("n1="+n1); //10 System.out.println("n2="+n2); //1010 System.out.println("n3="+n3); //520 System.out.println("n4="+n4); //65793 System.out.println(0x23A); //570 } }
1.2 进制图示
1.3 进制的转换
1.3.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.3.2 八进制转成十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方,然后求和
例如:将0234转换成十进制的数
0234=4*8^0+3*8^1+2*8^2=4+24+128=156
1.3.3 十六进制转换成十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以16的(位数-1)次方,然后求和
例如:将0x23A转换成十进制的数
0x23A=A(10)*16^0+3*16^1+2*16^2=10+48+512=570
1.3.4 十进制转换成二进制
规则:将该数不断除以2,直到商为0为止,然后将每一步得到的余数倒过来,就是对应的二进制
案例:将34转换成二进制 =0B00100010
1.3.5 十进制转换成八进制
规则:将该数不断除以8,直到商为0为止,然后将每一步得到的余数倒过来,就是对应的八进制
案例:将131转换成二进制 =0203
1.3.6 十进制转换成十六进制
规则:将该数不断除以16,直到商为0为止,然后将每一步得到的余数倒过来,就是对应十六进制
案例:将237转换成二进制 =0xED
1.3.7 二进制转换成八进制
规则:从低位开始,将二进制数每三位一组,转成对应的八进制数即可
例如:请将0b11010101转换成八进制
0b11(3)010(2)101(5) =>0325
0b11 010 101
21 020 401
1.3.8 二进制转换成十六进制
规则:从低位开始,将二进制数每四位一组,转成对应的十六进制数即可
例如:请将0b11010101转换成十六进制
0b1101(D)0101(5) =>0xD5
0b1101 0101
8401 0401
1.3.9 八进制转二进制
规则:将八进制数每一位,转成对应的一个3位的二进制数即可
例如:将0237转换成二进制
02(010)3(011)7(111)=0b10011111
2 3 7
010 011 111
1.3.10 十六进制转换成二进制
规则:将十六进制数每一位,转成对应的一个4位的二进制数即可
例如:将0x23B转换成二进制
0x2(0010)3(0011)B(1011)=0b1000111011
不同进制所代表的数值之间的关系
十进制的3981转化成十六进制是F8D
十进制的3981和十六进制的F8D所代表的本身上都是同一个数字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)