处理存储在一个字节数据中的两个不同值的正确方法是什么。我有一个包含两个半字节的字节,每个半字节包含自己的数据。我想把顶部的半字节和底部的半字节读成自己的变量。
11110000
=高4位节流,读入$throttle
,应为0到15之间的值。
00001111
=低4位制动,读入$brake
,应为0到15之间的值。
不要忘记,司机可以同时应用油门和刹车,因此您可能会得到11000111
之类的值。我自己想出了一个高4位的解决方案,就像使用>>
(右移位)运算符4次将低4位推出一样简单。 $Throttle = $ThrBrk >> 4
,但由于我不能在较低的四位中进行一次移动,因此在我的源代码中看起来有点不好。
答案 0 :(得分:6)
对两者使用AND
运算符,并将顶部半字节向右移动四位。
$brake = $value & 0x0F;
$throttle = ($value & 0xF0) >> 4;
答案 1 :(得分:1)