黑马程序员技术交流社区
标题:
实现2进制输出一个整数,且随意选择部分位数0-1翻转输出
[打印本页]
作者:
夜空守望者
时间:
2015-4-17 23:51
标题:
实现2进制输出一个整数,且随意选择部分位数0-1翻转输出
屏幕上输入一个数,实现使用其低四位翻转,即0变1,1变0,并输出得到的结果。
#include <stdio.h>
void changeDi4Wei(int num ){
// 利用sizeof计算出int类型的字节数
int len=sizeof (int)*8;
int temp,i ;
// 1.定义第一个循环,原样输出二进制中前(len-4)位的二进制0-1数值
for ( i=0; i<len-4; i++) {
// 每次都在原数的基础上进行移位运算
temp = num;
// 使用按位右移运算从二进制数的最高位开始输出
temp = temp>>(len-1-i);
// 得到最后最后一位
int t=temp&1;
printf("%d",t );
// 每四位输出一个空格
if(i!=0&&(i+1)%4==0)
printf(" ");
}
// 定义第二个函数,翻转输出二进制中低4位的二进制0-1数值
for ( int j=i ; j<len; j++) {
// 同第一个循环
temp=num;
// 同第一个循环
temp=temp>>( 31-j);
// 利用逻辑非,翻转输出后四位二进制数中0-1数值
int t=!(temp&1);
printf("%d",t );
}
printf("\n");
}
int main(){
int x;
printf("请输入一个整数:\n");
scanf("%d",&x);
changeDi4Wei(x);
return 0;
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2