ruby - 如何在 Ruby 中将有符号整数转换为无符号整数?
问题描述
我有一个从 C 程序中收到的数字,它是一个负数:
-1771632774
应该是这个数字:
2523334522
我意识到这一定是由于从有符号整数到无符号整数的某种转换。现在我在 Ruby 中有这个负数,我怎样才能将它转换回未签名的版本?
解决方案
将负整数放入数组中。使用代表“32 位无符号本机字节序 (uint32_t)”pack
的参数调用。'L'
使用相同的参数调用 unpack。最后,从数组中取出数字。
[-1771632774].pack('L').unpack('L').first
#=> 2523334522
推荐阅读
- python - 是否可以在不依赖其他值的情况下从预测集中恢复 Dif()?
- sharepoint - 如果 Document-CT 在常规 SharePoint 文档库中具有自定义表单,则无法更改 Office 文档的内容类型
- c# - Open XML SDK:如何更新 Excel 单元格?
- sql - 使用 FOR JSON PATH,WITHOUT_ARRAY_WRAPPER 时 SQL 查询不返回值
- javascript - 当单击按钮进入带有角度和 Fullcalendar 的工具提示时,请继续关注 Tippy.js
- html - 无法达到最大输入类型范围
- c++ - C++ Primer 第 5 版:指向成员函数的指针
- flutter - 在 dart 中如何使用路径提供程序将数据保存到文件中
- reactjs - 如何为 Material-UI 导入别名?
- java - 如何正确地将ejb注入接口?