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。然后它只是添加结果到原来的数字