为什么这些位移会得到不正确的结果?[关闭]

Why do get incorrect results of these bit shifts? [closed]

提问人:diviserbyzero 提问时间:11/15/2023 最后编辑:Peter Mortensendiviserbyzero 更新时间:11/17/2023 访问量:45

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将帮助其他人回答这个问题。

4天前关闭。

这可能不是正常的位移位,但我正在尝试将两个数字并排放置,以便它们的位保持不变。

d0 = 245678916563
d1 = 783623571345
b = 1000000000000
dx = int(hex(d0)[2:].strip("L") + "0" * 12, 16)
x = dx + d1

dy = d0 * b
y = dy + d1

十六进制的结果是正确的,但我的项目无法处理十六进制。

请注意,我正在开发的程序只接受十进制,因为它是一个 Q 和 P 未知的方程,所以我的想法要求我做一个移位,其中 Q 可以同时包含 P 和 y,形式为 。(Q = Px+y)P = Q[:36], y = Q[36:]

为什么 x 和 y 的最高有效位不一样。我做错了什么?

python-2.7 位操作

评论


答: 暂无答案