请教一个lua上负数补码转原码的问题

补码转原码的方法是正数是本身,负数是除符号位之外按位取反+1

我这边现在有个需求就是通过I2C读出来的8位数据是个补码(数据存在符号位),请问一下我应该怎么给转成源码

另外在lua里面负数应该怎么表示,比如负数转原码后数据是60,我是不是直接就写成-60就可以了?

我看wiki上面有个介绍按位取反的操作,print(bit.bnot(5))--按位取反,输出-6  我实测了确实输出的是-6,这块没太看明白是怎么来的

问题有点多,麻烦大佬们帮忙解答一下,非常感谢

请先 登录 后评论

最佳答案 2018-09-07 11:35

wiki.openluat.com 的pack包,可以将数据按字节,16位,32位大小端转成你要的格式,包括有符号或者无符号。

请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,4940 浏览
  • 佚枫 提出于 2018-09-06 13:18

相似问题