在论坛上了看了个需求,问题倒不难,只是解决方式问题,感觉用宏写起来麻烦,特别是多字节的情况,留个备注。
#include <stdio.h> #include <stdlib.h> unsigned char ru8(unsigned char s) { unsigned char rtn = 0 ; int i ; for(i = 0 ; i < 8 ; i++) { rtn |= ((s & (1 << i)) >> i) << (7 - i) ; } return rtn ; } int main() { unsigned i = 0 ; unsigned char s,m,d ; for(i = 0 ; i < 256 ; i++) { s = i ; d = ru8(s) ; m = ru8(d) ; if(m != s) { printf("s = %hhu,m=%hhu d = %hhu,error !/n",s,d) ; } } return 0 ; }