我发一个关于二进制 0 1 相互转换的 帖子 诚征优秀代码 欢迎各路高手进入:
样例输出见图片:要求: 就是把一个整型数据按位取反 比如 1011 变为0100 1111 变为0000 1000 变为0001 等等
我的代码 (不知是否有bug 欢迎指正)
程序代码:
#include <stdio.h> //按位(二进制)输出一个整型数据 void prnbit(int k) { if(k==0) return; prnbit(k>>1); if(k & 1==1) printf("%1d",1); else printf("%1d",0); } int main() { int i=3456; printf("原始数据是%6d 按位(二进制)输出是: ",i); prnbit(i); printf("\n"); int j=i; int k=0; while(i>0) { if(i & 1==1) j &=(~(1<<k));else j|=(1<<k); //判断当前位是1 则置0 反之是0则置1 i>>=1; k++; } printf("\n转换后是 %6d 按位(二进制)输出是: ",j); prnbit(j); printf("\n"); return 0; }