Python 中的自定义轮函数
Custom round function in Python
如何在 Python 中设置自定义轮函数?我想以 256 的步长舍入一个整数,只增加它。
例子:400变成512,1026变成1280...
关于我如何继续的任何建议?
谢谢。
你可以这样做
def round256(a):
return int(a / 256) if a % 256 == 0 else (a - a % 256) + 256
听起来您希望 math.ceil
函数缩放到任意数字:
>>> from math import ceil
>>> def round_step(n, step):
... return ceil(n / step) * step
...
>>> round_step(400, 256)
512
>>> round_step(1026, 256)
1280
我的解决方案是:
roundTo256 = lambda x: x + (256 - x%256)%256
首先它计算到下一个 256 倍数 (256 - (x % 256)
) 的距离,然后它%256
就此计算。这是因为它对于 256 的倍数是错误的,例如1024 -> 256,所以值是 1 到 256 之间的任何值。从 1 到 255,%256
没有效果,但是 256 % 256
= 0,所以结果为 0。然后它只是添加结果到原来的数字
如何在 Python 中设置自定义轮函数?我想以 256 的步长舍入一个整数,只增加它。
例子:400变成512,1026变成1280...
关于我如何继续的任何建议?
谢谢。
你可以这样做
def round256(a):
return int(a / 256) if a % 256 == 0 else (a - a % 256) + 256
听起来您希望 math.ceil
函数缩放到任意数字:
>>> from math import ceil
>>> def round_step(n, step):
... return ceil(n / step) * step
...
>>> round_step(400, 256)
512
>>> round_step(1026, 256)
1280
我的解决方案是:
roundTo256 = lambda x: x + (256 - x%256)%256
首先它计算到下一个 256 倍数 (256 - (x % 256)
) 的距离,然后它%256
就此计算。这是因为它对于 256 的倍数是错误的,例如1024 -> 256,所以值是 1 到 256 之间的任何值。从 1 到 255,%256
没有效果,但是 256 % 256
= 0,所以结果为 0。然后它只是添加结果到原来的数字