1.已知数据data,给data的第六个bit位置1,对data的第4个bit位置0,对data的第5个bit位取反
效果
![](https://i-blog.csdnimg.cn/blog_migrate/0bde66b011c1b8b0426c1bb8076c58b3.png)
改变位的代码
//修改
void binary_chage(int* value)
{
*value=*value|(1<<5);
*value=*value&(~(1<<3));
*value=*value^(1<<4);
}
全部代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//显示32位二进制数
void binary_show(int value,int i)
{
i++;
if(i>32)
return;
binary_show(value/2,i);
printf("%d",value%2);
}
//修改
void binary_chage(int* value)
{
*value=*value|(1<<5);
*value=*value&(~(1<<3));
*value=*value^(1<<4);
}
int main(int argc, const char *argv[])
{
int value=0;
printf("please input num\n");
scanf("%d",&value);
static int i=0;
//显示32位二进制数
printf("before_change\n");
binary_show(value,i);
puts("");
//给data的第六个bit位置1,对data的第4个bit位置0,对data的第5个bit位取反
binary_chage(&value);
i=0;
printf("after_change\n");
binary_show(value,i);
puts("");
return 0;
}