我有两个字节,8位八位字节,应将其读取为:[3位] [4位] [3位]。
例子:
unsigned char octet1 = 0b11111111; // binary values
unsigned char octet2 = 0b00000011;
作为整数:[7] [15] [7]。
有人可以给我提示从哪里开始吗?
最佳答案
在提取我们想要的位之前,无需将两个字节放在一起。
#include <stdio.h>
main()
{
unsigned char octet1 = 0b11111111;
unsigned char octet2 = 0b00000011;
unsigned char n1 = octet1 & 0b111;
unsigned char n2 = (octet1 >> 3) & 0b1111;
unsigned char n3 = (octet1 >> 7) | (octet2 + octet2);
printf("octet1=%u octet2=%u n1=%u n2=%u n3=%u\n",
octet1, octet2, n1, n2, n3);
}
关于c - 2个字节代表C中的3个整数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4096091/