单个 1 字节可以从 0 到 255。我打算将其重新缩放为从 0 到 7。我已经完成了这个:bit8 := uint8(136)// 将 1 字节从 0 重新缩放为 2^3-1,即从 0 到 7bit3 := bit8 / 0xff * 0b011...
单个 1 字节可能从 0
到 255
。我打算将其重新缩放为从 0
到 7
。我已完成此操作:
bit8 := uint8(136)
// To re-scale 1 byte from 0 to 2^3-1 i.e. 0 to 7
bit3 := bit8 / 0xff * 0b0111
结果 bit3
是 0
,但我预计它会是 3
或 4
取决于向下或向上舍入。由于浮点精确值将是 136/255*7 = 3.733333333
.
我如何才能实现我想要的输出?此时,四舍五入并不重要。只要方便就行。
笔记
我希望操作尽可能高效。因为它将在循环内完成。因此,以下解决方案不是 最佳 方案:
bit8 := uint8(136)
// To re-scale 1 byte from 0 to 2^3-1 i.e. 0 to 7
bit3 := uint8(float64(bit8) / 255.0 * 7.0)
一个从 0 到 255 的字节,从 0 重新缩放到 7
下载声明:
本站所有软件和资料均为软件作者提供或网友推荐发布而来,仅供学习和研究使用,不得用于任何商业用途。如本站不慎侵犯你的版权请联系我,我将及时处理,并撤下相关内容!