我正在进行集成,我对字段有以下条件:
如果数据长度为奇数,则为最后一个字节的低半字节赋值为十六进制“F”。用于填充的十六进制“F”确保字段使用了整数个字节,并且不包括在项目的长度中。
我尝试附加十六进制F,但这是错误的:
MainViewController
我想我需要获取最后一个字节并对其执行一些魔术,可能是一些按位操作:
data << "%X" % 15
如果有人能指出我正确的方向,我会很高兴。
答案 0 :(得分:3)
1
的二进制表示形式为1
。方便的是,这是OR
的所有1
,并且确保位为1
的简单方法是OR
与0b1111
。因此,确保半字节中的所有位为0xF
的简单方法是15
/ OR
/ 0
的半字节{/ 1}。
访问单个半字节通常很不方便,但幸运的是,还有一种简单的方法可以确保它保持原状:OR
它与0b0000
。因此,为了确保字节的第一个半字节保持原样,我们需要0xF
OR
第一个半字节,并确保最后一个半字节为0b1111
,我们需要OR
与0b00001111
。
综上所述,我们需要0x0F
整个最后一个八位字节0b1111
/ 0xF
(只有data.bytes.last |= 0xF
/ .remove
):< / p>
>>> a = [1,3,4]
>>> a.remove(1)
>>> a
[3, 4]