Python学习笔记17_进制表示及转换

Python学习笔记17_进制表示及转换

1、进制表示

  • Python 中默认是十进制,二进制、八进制、十六进制在 Python 中的表示:
a = 0b10101		# 以0b开头表示二进制	只能是0和1
b = 0o157		# 以0o开头表示八进制	只能是0~7
c = 34			# 默认是十进制
d = 0x15af		# 以0x开头表示十六进制	10~15用a~f表示

2、进制转换

2.1、十进制转二进制
  • 整数部分,除基取余,逆序排列;小数部分,乘基取整,顺序排列
2.2、二进制转十进制
  • 二进制数1101.01转化成十进制:

1101.01 ( 2 ) = 1 × 2 0 + 0 × 2 1 + 1 × 2 2 + 1 × 2 3 + 0 × 2 − 1 + 1 × 2 − 2 = 13.25 ( 10 ) 1101.01(2)=1 \times 2 ^0+0 \times 2^1+1 \times 2 ^2+1 \times 2 ^3+0 \times 2 ^{-1}+1 \times 2 ^{-2}=13.25(10) 1101.01(2)=1×20+0×21+1×22+1×23+0×21+1×22=13.25(10)

  • 通用公式:

a b c d . e f g = d × 2 0 + c × 2 1 + b × 2 2 + a × 2 3 + e × 2 − 1 + f × 2 − 2 + g × 2 − 3 abcd.efg=d \times 2^0+c \times 2^1+b \times 2^2+a \times 2^3+e \times 2^{-1}+f \times 2^{-2}+g \times 2^{-3} abcd.efg=d×20+c×21+b×22+a×23+e×21+f×22+g×23

  • 十进制和其他进制转换同理
2.3、二进制转八进制
  • 二进制的小数点为分界点,向左(向右)每三位分成一组,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。
  • 如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。
2.4、二进制转十六进制
  • 二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。
  • 如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。
2.5、使用内置函数进行进制转换
a = 12

# 使用bin内置函数可以将数字转换成二进制
print(bin(a))		# 0b1100	

# 使用oct内置函数可以将数字转换成八进制
print(oct(a))		# 0o14		

# 使用hex内置函数可以将数字转换成十六进制
print(hex(12))		# 0xc		
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值