我有这个问题。我有一个可以动态改变其长度的有效载荷。如果我不削减这个有效载荷,我也会得到对我来说是垃圾的信息。所以我想以我的有效载荷长度为基础削减有效载荷。
我有这部分代码:
uint64_t data_tmp = HTONLL((uint64_t) zp->data);
uint8_t len = zp->length;
uint64_t mask = 0xFFFF >> (64 - len);
data_tmp = data_tmp & mask;
printf("DATA_TMP = %llu\n", data_tmp);
zp->data 在写入 t->payload 字段后。所以这是我的有效载荷。这是一个 64 位字段。
我想暂时拿走这个有效载荷。计算我的有效载荷长度,即 uint8 类型的 zp->length 字段。在我创建一个 64 字节移位的掩码之后 - payload_length 以我可以将其应用于临时有效负载并获得一个仅包含我想要的数据和全零的字段的方式。
我怎样才能做到这一点?
例如。如果 payload_length 为 01 且有效负载 00+.................(垃圾)我想在 64 字节上获得像 00000000 这样的有效负载。
如果我的有效载荷长度为 13 且有效载荷为 1284732089322309.... 我只想获得 13 个字节。
抱歉,如果很难说...