请教C语言位运算的问题

比如我有一个十六位二进制数:1101111000111010我需要逐位进行异或运算的结果:1⊕1⊕0⊕1⊕1......难道非得定义十六个int型变量?把这个十六位二进制... 比如我有一个十六位二进制数:1101 1110 0011 1010
我需要逐位进行异或运算的结果:1⊕1⊕0⊕1⊕1......
难道非得定义十六个int型变量?
把这个十六位二进制数放到一个int型变量里进行位运算可以做到不?
或者有什么变通的方法?
定义数组和定义十六个int型变量不是一回事嘛。
我想只用一个int变量呀
展开
 我来答
erimy
2008-12-25 · TA获得超过118个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:154万
展开全部
答案如下:
#include<stdio.h>

void main()
{
int n;
printf("input a integer:");
scanf("%d",&n);
int result=n%2;
n=n/2;

while(n!=0)
{
result^=(n%2);
n/=2;
}

printf("the result is:%d\n",result);
}
验证通过,满足要求!
duskwindlove
2008-12-25 · TA获得超过2342个赞
知道小有建树答主
回答量:712
采纳率:0%
帮助的人:381万
展开全部
数组
放进一个数组里面然后进行运算就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
司徒剑仙
2008-12-25 · TA获得超过234个赞
知道小有建树答主
回答量:275
采纳率:0%
帮助的人:219万
展开全部
可以 a^b就ok了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangyc1983
2008-12-25
知道答主
回答量:26
采纳率:0%
帮助的人:24.2万
展开全部
放到2个byte类型的数里异或,应该可以吧
你把数拆成2个数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liujq007
2008-12-25 · TA获得超过942个赞
知道大有可为答主
回答量:1035
采纳率:0%
帮助的人:1082万
展开全部
b=0x10000;//1 0000 0000 0000 0000
a^=(b>>=1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wdtd88
2008-12-25 · TA获得超过299个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:217万
展开全部
/******本人之见,只做参考*******/

/*****你说的是打印出一个16进制数的每一位二进制吗,希望我没有理解错,更希望能帮上你******/

/*像你那样说只定义一个整形似乎有点问题吧.
你看这个程序:只有定义两个整形变量.
如果定义一个变量I时,当这个数是奇数时,可以打印到最后那一个1,
而要是是一个偶数时,最后一个1肯定打印不出来.*/
#include<stdio.h>
#include<stdlib.h>
#define NUM 32//我这是32位的整形,你要是是16位的话,你把改成16
void main()
{
int i,num=NUM;
printf("Please insert :");
scanf("%d",&i);

while(num--)//如果你把改为while(i)的话,如前所说,最后那一个1不一定打印不出来啊
{
printf("%d ",-(i>>31));
if(num%4==0)
printf(" ");
i<<=1;
}
printf("\n");
}
//是否还有其它的方法,我现在还不知道,只有等高手来了吧.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式