encoding - 如何将两个有符号整数编码为一个数字,并能够用正确的符号恢复它们?
问题描述
StackOverflow 上有多种针对无符号整数的解决方案。想知道在以下代码中要更改什么以使其也适用于有符号整数。
#works only for unsigned integers
bits=16
def encode(x,y):
return (x<<bits) | y
def decode(encoded):
#return (encoded>>bits, encoded & ~(~0 <<bits))
return (encoded>>bits, encoded & 0xFFFF)
if __name__=="__main__":
encoded=encode(3,-15)
print(decode(encoded))
解决方案
推荐阅读
- jquery - 当用户在 adminlte 中打开第二个下拉菜单时,如何关闭侧边栏菜单下拉菜单?
- git - crontab 没有显示 git 远程分支
- swiftui - 在按钮单击 SwiftUI 时导航到新屏幕
- php - 配置中的 symfony 3.4 无法识别的选项
- mysql - MySQL GROUP_CONCAT 与 ORDER BY 以错误的顺序返回结果
- azure - 如何从管道获取 Azure Active Directory 用户详细信息?
- reactjs - React TypeScript:如何在每次路由更改时调用 api 并设置状态
- javascript - GeoJSONLayer 使回调状态加载 javascript api arcgis
- javascript - 更改 MapboxGl 上的右键和左键单击功能
- python - 使用 glob 字符串从 Google Cloud 读取时,Dask 解决了无文件错误