【发布时间】:2019-11-13 20:37:54
【问题描述】:
我意识到这是非常琐碎的事情,但我无法理解它。
假设我正在使用this message. 这是一个 3 字消息,每个字 16 位。如果我试图编写进行这些变量赋值的伪代码,这是否正确:
var1 = (word 1) & 0x7FFF
tmp1 = (word 1 >> 15) & 0x0001
tmp2 = (word 2 & 0x3FFF) << 14
var2 = tmp1 + tmp2
tmp1 = (word 2 >> 14) & 0x0003
tmp2 = (word 3 & 0x7FFF) << 15
var3 = tmp1 + tmp2
【问题讨论】:
-
取决于你想做什么。如果第 1 字的第 15 位保留在第 15 位,那么您不应该将其移回第 0 位。但您的目标又是什么?
-
@broch 我想要的是每个变量都具有以下属性: var1:15 位字段,在字 1 上找到,LSB 位位置 0,MSB 位位置 14 var2:15 位字段,找到在字 1 和 2 上,字 1 的 LSB 位位置 15,字 2 的 MSB 位位置 13 var3:17 位字,在字 2 和 3,LSB 位位置 14 字 7,MSB 位位置 14 字 3 上找到 这是当你问我的目标是什么时,你的意思是什么?最终,我只需要将消息中的这些数据分配给这三个变量。
标签: bit-manipulation bitwise-operators pseudocode bit-shift bitwise-and