gpt4 book ai didi

python - 在python中将一个16位整数拆分为两个8位整数

转载 作者:太空狗 更新时间:2023-10-30 00:21:28 27 4
gpt4 key购买 nike

我必须将一个给定的 16 位整数转换为两个 8 位整数,然后将它们用作输出,它们的标题是将两个 8 位整数重新组合为 16 位输入(不幸的是我无法控制).我的解决方案有效,但感觉不干净。对于粗略数字,我对原始数字进行了位移,对于精细数字,我正在查看它对 256 的模数。

那么我应该对粗略数进行底数除法,还是应该对精细数取最低 8 位(如果是的话如何?)?

还是我疯了,使用两种不同的方法拆分数字不是问题?

def convert(x):
''' convert 16 bit int x into two 8 bit ints, coarse and fine.

'''
c = x >> 8 # The value of x shifted 8 bits to the right, creating coarse.
f = x % 256 # The remainder of x / 256, creating fine.
return c, f

最佳答案

我愿意

c = (x >> 8) & 0xff
f = x & 0xff

它更安全,参见示例

>>> (10303 >> 8) & 0xff
40
>>> (1030333333 >> 8) & 0xff
163
>>> (1030333333 >> 8)
4024739

由于在 Python 中您无法控制数字是否为 16 位,因此您必须将其强制为最多 16 位值。如果您确定有一个 16 位值,则不需要这样做,但这样函数更通用,让您只对 16 位值感兴趣,无论容器包含什么。

关于python - 在python中将一个16位整数拆分为两个8位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3123371/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com