0

To get the last N digits of a decimal number I usually convert it to a string. For example, for two digits:

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

With binary its relatively straightforward to do this with a mask, such as:

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

Is it possible to apply a mask to a deicimal number to get the last two digits, 87 in the above example?

samuelbrody1249
  • 4,379
  • 1
  • 15
  • 58

1 Answers1

2

You are referring to the mod operator, e.g.:

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

Out[]:
87

The general case is base**n where n is the number of digits in the base, e.g. binary case:

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

Out[]:
'01'

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

Out[]:
'1001'
AChampion
  • 29,683
  • 4
  • 59
  • 75