我有一个包含半字节列表的数组:
{0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, ...}
Run Code Online (Sandbox Code Playgroud)
我想通过左移高位半字节并将其与低位字节连接,将相邻的半字节组合成单个字节.输出应如下所示:
{0xab, 0xcd, 0xef, ...}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在C中实现这一目标?
就像是
char *input, *output;
int i;
...
for(i=0; i<len; i+=2) {
output[i/2]=(input[i]<<4) | input[i+1];
}
Run Code Online (Sandbox Code Playgroud)
提供输出作为数组至少是输入的一半,并且输入中没有设置高半字节.
无需为您编写整个代码,这里有一个提示:
unsigned int Nibble1 = 0x0A;
unsigned int Nibble2 = 0x0B;
unsigned int Result = (Nibble1 << 4) | Nibble2; // Result = 0xAB
Run Code Online (Sandbox Code Playgroud)
然后,您只需要编写一个循环,一次遍历输入数组的两个元素并写入输出数组。
我希望这有帮助!
| 归档时间: |
|
| 查看次数: |
5567 次 |
| 最近记录: |