LIN specifications 标识符奇偶校验函数
typedef <span style="white-space:pre"> </span> char char8; typedef unsigned char uint8; typedef unsigned int uint16; typedef unsigned long uint32; typedef signed int int16; typedef signed char int8; uint8 lin_get_frame_id(uint8 id) { uint8 temp; uint8 p0, p1; p0 = ((id & (1<<0)) >> 0) ^ ((id & (1<<1)) >> 1) ^ ((id & (1<<2)) >> 2) ^ ((id & (1<<4)) >> 4); /* ((x & (1<<n)) >> n) 求某个整数中二进制位的某位的值 */ p1 = ~(((id & (1<<1)) >> 1) ^ ((id & (1<<3)) >>3 ) ^ ((id & (1<<4)) >> 4) ^ ((id & (1<<5)) >> 5)); temp = id | (p0<<6) | (p1<<7); return temp; }
((x & (1<<n)) >> n) 求某个整数中二进制位的某位的值
原文地址:http://blog.csdn.net/w89436838/article/details/41983185