如何将一个字节的字符数据半字节转换为存储在另一个变量中的两个字节以取消屏蔽

How to take to nibbles from a byte of data that are chars into two bytes stored in another variable in order to unmask

我有两个 uint_16ts 是从我的数据的半字节中得到的,如下面的代码所示。我需要将其放入掩码集中,以便每个半字节现在都在其自己的字节中。我得到的代码在下面,我一辈子都弄不明白。我需要这样做,因为这将创建我将用来揭露轻度加密数据的掩码。

uint16_t length = *(offset+start) - 3;
uint16_t mask = length;
if(Fmt == ENCRYPTED) {
    char frstDig = (length & 0x000F)
    char scndDig = (length & 0x00F0) >> 4;
    mask = 

将其中一位数字移动 8 位,然后将它们相或。

mask = (scndDig << 8) | frstDig;