十六进制与八进制对应二进制的规律。
- 问题:
在学编程语言时,基本每一种编程语言都会提供hex()转换为16进制的函数,和oct()转换为8进制的函数。学过C#,java,Python,几乎每一种语言都约定束城的将10进制作为默认进制,而对8进制和16进制做了单独的函数封装。如果需要转成其他进制会有一个公用的函数提供。每次都很好奇为啥要单独提供。今天终于明白了。 - 计算机是二进制的。
- 二进制特点:【8,4,2,1】原理(每个在自己位上单独二进制数对应的十进制数)。4位的二进制数满位转换成十进制为:8+4+2+1=15
- 十进制:作为默认使用进制,适应社会。设计合理
- 十六进制:比如说0xFF 表示为二进制为:0b11111111。
- 注意:一位的最大十六进制数为F,等价于十进制的15,等价于二进制数的0b1111刚好是由4位二进制数的最大值组成。
- 规律:十六进制转二进制,只需要将十六进制每位的数转成对应的二进制数链接起来就是对应的二进制数:例如:0xFF 等价于0b11111111。刚好是一个满8位的二进制数。同理,如果二进制数转成十六进制,只需要将二进制从最小位开始每4位转成一个对应的十六进制数链接起来就是对应的十六进制,例如:0b10110011 等价于0xb3。
- ipv6地址就是十六进制表示
- 八进制:根据上面16进制类似,是由3位满位的二进制数刚好等于一位满位的八进制数。例如:0o7 等价于0b111。