我有一个变量持有x长度数,实时我不知道x。我只想把这个值分成两部分。例如;
variable holds a = 01029108219821082904444333322221111
I just want to take last 16 integers as a new number, like
b = 0 # initialization
b = doSomeOp (a)
b = 4444333322221111 # new value of b
如何划分整数?
答案 0 :(得分:8)
>>> a = 1029108219821082904444333322221111
>>> a % 10**16
4444333322221111
或者,使用字符串操作:
>>> int(str(a)[-16:])
4444333322221111
如果您事先不知道号码的“长度”,可以计算出来:
>>> import math
>>> a % 10 ** int(math.log10(a)/2)
4444333322221111
>>> int(str(a)[-int(math.log10(a)/2):])
4444333322221111
当然,对于数字的“另一半”,它是
>>> a // 10 ** int(math.log10(a)/2) # Use a single / with Python 2
102910821982108290
修改强>
如果您的实际问题是“如何将字符串分成两半”,那么它就是
>>> a = "\x00*\x10\x01\x00\x13\xa2\x00@J\xfd\x15\xff\xfe\x00\x000013A200402D5DF9"
>>> half = len(a)//2
>>> front, back = a[:half], a[half:]
>>> front
'\x00*\x10\x01\x00\x13¢\x00@Jý\x15ÿþ\x00\x00'
>>> back
'0013A200402D5DF9'
答案 1 :(得分:0)
我只是通过将切片投射到一个字符串,然后将切片转换回一个数字来解释切片。
b = int(str(a)[-16:])
答案 2 :(得分:0)
一种方法是:
b = int(str(a)[len(str(a))/2:])