开发者学堂课程【Python入门 2020年版:二进制转换八进制十六进制以及十进制】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10242
二进制转换八进制十六进制以及十进制
内容介绍
一、二进制转换八进制
二、二进制抓换十六进制
三、二进制转换十进制
本节主要讲述其他进制之间的相互转换,在开发中,进制转换并没有很难,不是特别多。
十进制转二进制是不断除以二,八进制转十六进制需求比较少,十进制转八进制和十六进制也比较少。
一、二进制转换八进制
1.以下是进制的转换概念
一个二进制是一位,一个比特Byte
一个字节是八位b
1KB=1024b
1MB=1024kb
1GB=1024MB
2.十进制:23 二进制:0001 0111 0b10111
一般使用1字节即8位表示一个数字,这个数的有效位是10111,前方加三个0,共8位来表示一个字节。
三个二进制表示一个八进制010 111 0o27
二进制的010转换成十进制是2,二级制的111转换成十进制是7,所以三个为一组的二进制010111转换成八进制的结果是27
可以用计算器来验证:十进制的23即二进制的10111转换成八进制位27
二、二进制转换十六进制:
四位二进制表示一个十六进制:0001 0111 0x17
二进制的0001转换成十进制是1,二进制的0111转换成十进制是7,所以二进制的10111转换成十六进制是17
三、二进制转换十进制
从右到左用二进制的每个数去乘以2的相应次方并相加。
例1: 0b111
32 16 8 4 2 1 从右到左从2的0次幂依次幂数加一
1 1 1
用下方对应的数乘以上方所对应的数相加的和为最后十进制结果。
结果计算方法:1*1+1*2+1*4=7
所以二进制111转换成十进制为7
例2:
0b 10110101
128 64 32 16 8 4 2 1
1 0 1 1 0 1 0 1
1*1+0*2+1*4+0*8+1*16+1*32+0*64+1*128=181
最后用计算器验证结果
二进制转换十进制的基础原则就是从右向左依次乘以2的0次幂依次加一次幂
例3:
C=0b1010 #0*1+1*2+0*4+1*8=10
print(C) 得出结果是10
原理并不难,只需要理解就可以,并且掌握十进制转为二进制,二进制转换八进制、十进制以及十六进制的转换即可。但其实十进制可以转换为八进制亦或十六进制,只不过在开发是应用不是很广泛,以及其他进制转换在这里暂不赘述。
以下是在python中常用的进制转换,原理记住即可
在 python 中负数是存在一定问题的
例:
A=23
Print
(bin(A))
转换为二进制为:0b10111
若使得A=-23
Print
(bin(A))
转换为二进制为:-0b10111 但这种表述不够准确,存在一定问题,真正的二进制涉及到最高位,反码补码。面试的时候不会涉及让你手动计算进制之间的转换,可能会涉及用法,但不会计算。