带有掩码的十进制数字的后两位?

问题描述

要获取十进制数字的最后N位,我通常将其转换为字符串。例如,对于两位数:

n = 129387
int((str(n)[-2:]))
# 87

使用二进制文件,使用掩码相对简单,例如:

n = 0b00101001
'{:02b}'.format(0b00101001& 0b11)
# '01'
# -- or -- 
'{:02b}'.format(0b00101001& 0x3)
# '01'

是否可以对十进制数字加上掩码以获取最后两位数字,例如上述示例中的87

解决方法

您指的是mod运算符,例如:

In []:
129387 % 100  # 10**2

Out[]:
87

一般情况是base**n,其中nbase中的位数,例如二进制情况:

In []:
format(0b00101001 % 2**2,'02b')

Out[]:
'01'

In []:
format(0b00101001 % 2**4,'02b')

Out[]:
'1001'

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...