红宝石中整数的高/低字节转换

BvuRVKyUVlViVIc7

在将红宝石中的数据从十六进制转换为整数时,我们遇到一些小问题。

我们得到一个硬件信号,它是整数数据->转换为高字节和低字节,按位取反->字符串。

这是一个例子:

Something between 0 and 75 => will be converted to "0x3938"...

但是,如何将“ 0x3938”转换回75?

我已经尝试过:

"0x3938".to_i(16) => 14648 # wrong results (also with "0x3938".hex)

但这会返回错误的值。

有什么提示吗?我没有得到这个高/低字节分割?

编辑:这是一些示例值,所有这些值都应导致0到75之间的整数。计算是使用joelparkerhenderson的答案完成的。

Hex: 0x0000 - calculated integer: 0.0
Hex: 0x0000 - calculated integer: 0.0
Hex: 0x0000 - calculated integer: 0.0
Hex: 0x025d - calculated integer: 186.0
Hex: 0x0ad3 - calculated integer: 203.0
Hex: 0x0fe1 - calculated integer: 135.0
Hex: 0x1508 - calculated integer: 16.0
Hex: 0x1a8a - calculated integer: 81.0
Hex: 0x1f6e - calculated integer: 118.0
Hex: 0x244f - calculated integer: 242.0
Hex: 0x28b2 - calculated integer: 77.0
Hex: 0x2a0a - calculated integer: 80.0
Hex: 0x2aa8 - calculated integer: 21.0
Hex: 0x2ae6 - calculated integer: 103.0
Hex: 0x2add - calculated integer: 187.0
Hex: 0x2adc - calculated integer: 59.0
Hex: 0x2aea - calculated integer: 87.0
Hex: 0x2abf - calculated integer: 253.0
Hex: 0x2a87 - calculated integer: 225.0
Hex: 0x2a4a - calculated integer: 82.0
Hex: 0x2a56 - calculated integer: 106.0
Hex: 0x2a91 - calculated integer: 137.0
Hex: 0x2aee - calculated integer: 119.0
Hex: 0x2b64 - calculated integer: 38.0
Hex: 0x2f41 - calculated integer: 130.0
Hex: 0x32dc - calculated integer: 59.0
Hex: 0x341d - calculated integer: 184.0
Hex: 0x34e7 - calculated integer: 231.0
Hex: 0x35af - calculated integer: 245.0
Hex: 0x369f - calculated integer: 249.0
Hex: 0x377e - calculated integer: 126.0
Hex: 0x3873 - calculated integer: 206.0
Hex: 0x3959 - calculated integer: 154.0
Hex: 0x3a33 - calculated integer: 204.0
Hex: 0x3b4f - calculated integer: 242.0
Hex: 0x3c1b - calculated integer: 216.0
乔尔帕克亨德森

这可以为您提供帮助:

def rbit(n)
  r =  0
  8.times{|i| r = r * 2 + n[i] }
  r
end

mark-hubbart的32位整数信用逆序位顺序

或者,如果您更喜欢位运算符,则如下所示:

def rbit(n)
  (((n & 0x01) << 7)
  |((n & 0x02) << 5)
  |((n & 0x04) << 3)
  |((n & 0x08) << 1)
  |((n & 0x10) >> 1)
  |((n & 0x20) >> 3)
  |((n & 0x40) >> 5)
  |((n & 0x80) >> 7))
  n
end

不使用paxdiablo循环情况下按位分配信用逆整数

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将红宝石中的UTC时间转换为EST(不使用Rails)?

来自分类Dev

红宝石中的<<-是什么?

来自分类Dev

红宝石转换查询与关联到哈希

来自分类Dev

红宝石和铁轨中的资源路线

来自分类Dev

红宝石中的整数变量声明

来自分类Dev

将数组结果转换为红宝石

来自分类Dev

使用以下结构将数组转换为红宝石中的哈希

来自分类Dev

将红宝石中的小时,分钟和秒转换为秒

来自分类Dev

红宝石中的数组更新

来自分类Dev

反射在红宝石中?

来自分类Dev

用红宝石中的\\替换`\`

来自分类Dev

排序红宝石中的数字

来自分类Dev

垃圾收集在红宝石中?

来自分类Dev

红宝石转换查询与关联到哈希

来自分类Dev

从红宝石中的STDIN一次读取四个字节

来自分类Dev

红宝石中的内存分配

来自分类Dev

转换为嵌入式红宝石

来自分类Dev

红宝石中的Trim()方法?

来自分类Dev

在红宝石数组中搜索

来自分类Dev

红宝石中整数的高/低字节转换

来自分类Dev

红宝石中的数组更新

来自分类Dev

澄清红宝石中的常数

来自分类Dev

红宝石中的文件索引

来自分类Dev

在红宝石中跳过日期

来自分类Dev

红宝石中的Haversine公式

来自分类Dev

如何从Rich Text中删除CSS属性以转换红宝石字符串?

来自分类Dev

将卷发转换为红宝石中的开利吗?

来自分类Dev

在红宝石中尝试方法

来自分类Dev

红宝石力对实数的整数除法