c语言寻找比特为1的位置,寻找字符数组中特定的一对比特'10'或'01'

这可能是一个稍微理论化的问题.我有一个包含网络数据包的char字节数组.我想检查每66位特定位对('01'或'10')的出现.也就是说,一旦我找到第一对位,我就必须跳过66位并再次检查是否存在相同的位.我正在尝试用掩码和移位来实现一个程序,这有点变得复杂.我想知道是否有人可以提出更好的方法来做同样的事情.

到目前为止我写的代码看起来像这样.但它并不完整.

test_sync_bits(char *rec, int len)

{

uint8_t target_byte = 0;

int offset = 0;

int save_offset = 0;

uint8_t *pload = (uint8_t*)(rec + 24);

uint8_t seed_mask = 0xc0;

uint8_t seed_shift = 6;

uint8_t value = 0;

uint8_t found_sync = 0;

const uint8_t sync_bit_spacing = 66;

/*hunt for the first '10' or '01' combination.*/

target_byte = *(uint8_t*)(pload + offset);

/*Get all combinations of two bits from target byte.*/

while(seed_shift)

{

value = ((target_byte & seed_mask) >> seed_shift);

if((value ==


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部