永发信息网

C语言中二进制指定的某一位数0变1,或者1变0,并输出该数值.给个详细的代码吧!谢谢!!!

答案:4  悬赏:0  手机版
解决时间 2021-11-19 16:32
C语言中二进制指定的某一位数0变1,或者1变0,并输出该数值.给个详细的代码吧!谢谢!!!
最佳答案
0变1其它位不变,位或一个该位为1其它位为0的数可得
1变0其它位不变,位与一个该位为0其它位为1的数可得
得到等N位为1其它位为0的数,可用1左移N位即得
得到等N位为0其它位为1的数,用前数位反一下即得

演示程序:
#include
char*int2bin(int ,char* );
int main()
{
int x0,x1,n,flag;
char x0b[33]={0};
char x1b[33]={0};
while(1)
{
x0 = x1 = n = flag = -1;
printf("输入原始数值 操作位(0-31) 和操作方式(1置/0清)\n");
scanf("%d %d %d", &x0, &n, &flag);
if( n<0 || n>31 || flag!=0&&flag!=1 ) break;//无效输入将退出
if(flag==1)//置1
{
x1 = x0 | (1< }
else//清0
{
x1 = x0 & ~(1< }
printf("处理前十进制:%-10d 二进制:%s\n", x0,int2bin(x0,x0b));
printf("处理后十进制:%-10d 二进制:%s\n\n",x1,int2bin(x1,x1b));
fflush(stdin);
}
return 0;
}
char*int2bin(int x,char*out)
{
for(int i=0;i<32;i++)
out[i] = (x&(1<<(31-i))) ? '1' : '0';
out[32] = '\0';
return out;
}
全部回答
最后一位1变0,0变1,
例如:32位下
int a;
printf("请输入a的值");
scanf("%d",&a);
a=a^1;
printf("%d",a);
int fun(int a,int x)
{
int c;
c=a|(1《x);
return c;
}
这里a是要操作的数,x是指定位(从右向左)
#define set_bit(val,bit)
do{
val |= 1< }while(0)
#define clr_bit(val,bit)
do{
val &= ~(1< }while(0)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
金子溪村地址有知道的么?有点事想过去!
什么app?
如果T10和T12淬火温度一样,淬火后残余奥氏体
ml时,为什么男友要我喊他老公?
请问在word表格中字体怎样居中(在当中),在
梦大树忽倒碰断电线吓死人
己知代数式x-5与7x-1/3的差是3,则x为
help的现在进行时
16V2OAh电动车蓄电池ccA是多大
我的窑炉高温区是13区,但温度总上不去,并且
上学想家 我该怎么办= =
ca化学元素是什么
媳妇对公公的称呼书面表达怎么写最正式
狐狸吵架 一派狐言的狐谐音
太阳与月亮的成语
推荐资讯
公民有哪四项基本义务?如何理解,举例说明。
从高安坐车去葟岭怎么去
生晒参多少钱一斤?
徐工吊车,七十吨多少钱一台
七日杀14.6防尸潮房子如何建造
鏖战的鏖字
冬天说手shan了,shan字怎么写
一汽海马汽车销售有限公司属于一汽还是属于海
铁栅栏的读音
驴()马()这个成语咋填
apostrophe是什么品牌
美女总裁中高飞的母亲是谁?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?