python - 如何在 Python 中舍入十六进制值

标签 python hex rounding

我有一个简单的算法可以找到 2 个十六进制值之间的差异,我正在尝试找到一种方法来对这些值进行四舍五入。

例如,如果值为 0x7f8000,我想将它四舍五入为 0x800000。

这可能吗?

最佳答案

除了以十六进制格式打印十六进制数字外,没有特殊处理方法。

>>> def myroundup(n, step):
...     return ((n - 1) // step + 1) * step
...
>>> hex(myroundup(0x7f8000, 0x10000))
'0x800000'
>>> myroundup(998000, 10000) # works with other bases too
1000000

如果您需要向下舍入,请使用:

>>> def myrounddn(n, step):
...     return n // step * step

为了完整性,四舍五入到最接近的步骤:

>>> def myround(n, step):
...     return (n + step // 2) // step * step

您也可以使用 myrounddn 定义它:

>>> def myround(n, step):
...     return myrounddn(n + step // 2, step)

关于python - 如何在 Python 中舍入十六进制值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49852583/

相关文章:

python - Python 的继承错误

python - 检查输入 : expected flatten_input to have 3 dimensions, 但获得形状为 (None, 100, 100, 1) 的数组时出错

python - 在 Canopy 的函数内使用 matplotlib.animation

c++ - 在 C++ 中打印出 unsigned char 数组的十六进制值

hex - 为什么 0x8FFFFFF 等于 128MB?

java - Java 中的四舍五入?

python - 如何用 tensorflow 准确地四舍五入

python - 在Docker上的pip安装上的CERTIFICATE_VERIFY_FAILED

java - 文件存入十六进制表

javascript - 在 JavaScript 中 chop/舍入整数?