用于获取X和Y位之间的值的位掩码
我有一个指向数组的16个字节的字符指针(因此为128位)。 这些位包含我的任务的一些有价值的信息,我需要解析他们的固定位置的值。例如,第23位和第12位之间有时间信息。我知道我需要使用位掩码来检索这些数据,但我无法管理它。用于获取X和Y位之间的值的位掩码
任何人都可以告诉我如何获得这些信息吗?
最后,我需要将这些检索到的位转换为整数,但这已经是任务的简单部分。
一般的方法是选择方括号内的字节,然后使用单个的&屏蔽掉你关心的位,然后右移字节的位数,它是来自LSB的,然后你具有整数值。
例如
int i = (int)((a[1] & 0x6) >> 1);
这将让第二个,第二个字的第三至少显著位的值,并把该值的整数。
更具体的提问: 第23位和第12位
int i = (int)((a[1] & 0xF0) >> 4) || (((int)(a[2])) << 8);
另在C/C++的方式将定义与位域打包结构。
不应该是&0x0F?因为F0意味着1111 0000,我应该检索0000 1111这是0x0F? – Dundar
int i =((int)a [1] > 1;'实际上更快 – user3528438
你不能将它转换为int,因为你不知道字节序 –
怎么样'arr [1] && 0xF0'和'arr [2] && 0xFE'和他们结合他们? –
C#? Qt的?请勿标记垃圾邮件 – deviantfan
您为什么认为它是垃圾邮件?这个话题可以由所有这些领域的人来回答。 – Dundar