给定长度填充一个整数,前面加0,末尾加0
Pad an integer to a given length with one 0 in front and some at the end
我需要如下操作一个数字,
inputs
1
23456
6674321
outputs
01000000
02345600
06674321
只是在数字前面加一个零,如果少于八个字符,则在末尾加零。它应该是一个数字而不是一个字符串。有没有一种简单的方法可以完成此操作而无需从字符串转换为 int 或将 int 转换为字符串?
我试过的一个Sagemath代码如下。它只在前面添加零以将数字填充到 8 个字符。我需要像我提到的那样修改它。
for num in range(1,25):
s=randrange(2^16)
r=mod((s-1)*503,randrange(2^32-1))
print "%08d" % (r)
在右边填充意味着将数字乘以 10 的适当次方。6-floor(log(x,10))
次方在这里完成工作,因为您希望 1000000 不被填充。
for x in range(1, 101):
print '%08d' % (x*10^(6-floor(log(x,10))))
这假设 x 处于完全可能进行此类填充的范围内:即 1 到 9999999 之间的整数。
我需要如下操作一个数字,
inputs
1
23456
6674321
outputs
01000000
02345600
06674321
只是在数字前面加一个零,如果少于八个字符,则在末尾加零。它应该是一个数字而不是一个字符串。有没有一种简单的方法可以完成此操作而无需从字符串转换为 int 或将 int 转换为字符串?
我试过的一个Sagemath代码如下。它只在前面添加零以将数字填充到 8 个字符。我需要像我提到的那样修改它。
for num in range(1,25):
s=randrange(2^16)
r=mod((s-1)*503,randrange(2^32-1))
print "%08d" % (r)
在右边填充意味着将数字乘以 10 的适当次方。6-floor(log(x,10))
次方在这里完成工作,因为您希望 1000000 不被填充。
for x in range(1, 101):
print '%08d' % (x*10^(6-floor(log(x,10))))
这假设 x 处于完全可能进行此类填充的范围内:即 1 到 9999999 之间的整数。