一段代码为安身!(2)
来源:互联网 发布:java instance单例 编辑:程序博客网 时间:2024/05/23 00:39
//调试过程中易出现将按位与“|”写错成“||”#include <stdio.h>void main(void){ unsigned char uData = 0xaa;//1001 1011unsigned char uMask = 0;unsigned char temp=1;unsigned char targetData=0;unsigned i;for(i=1;i<=8;i++){ uMask = uData ^ ((uData >> i) <<i);//右移再左移后末i位一定为0 // printf("%d\n",uMask); if(temp==uMask) { uData=uData-temp; //printf("%x\n", uData); targetData=targetData|(1<<(8-i)); //printf("targetData=%x\n", targetData); } temp=temp*2;// printf("temp=%d\n",temp); } uData=targetData; printf("targetData=%x\n", uData);//%x表示为uData为十六进制表示。} //采用移位处理和异或处理,较高效