我发一个关于二进制 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;
}









