请教C语言位运算的问题
比如我有一个十六位二进制数:1101111000111010我需要逐位进行异或运算的结果:1⊕1⊕0⊕1⊕1......难道非得定义十六个int型变量?把这个十六位二进制...
比如我有一个十六位二进制数:1101 1110 0011 1010
我需要逐位进行异或运算的结果:1⊕1⊕0⊕1⊕1......
难道非得定义十六个int型变量?
把这个十六位二进制数放到一个int型变量里进行位运算可以做到不?
或者有什么变通的方法?
定义数组和定义十六个int型变量不是一回事嘛。
我想只用一个int变量呀 展开
我需要逐位进行异或运算的结果:1⊕1⊕0⊕1⊕1......
难道非得定义十六个int型变量?
把这个十六位二进制数放到一个int型变量里进行位运算可以做到不?
或者有什么变通的方法?
定义数组和定义十六个int型变量不是一回事嘛。
我想只用一个int变量呀 展开
展开全部
数组
放进一个数组里面然后进行运算就好了
放进一个数组里面然后进行运算就好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以 a^b就ok了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
放到2个byte类型的数里异或,应该可以吧
你把数拆成2个数
你把数拆成2个数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
b=0x10000;//1 0000 0000 0000 0000
a^=(b>>=1);
a^=(b>>=1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/******本人之见,只做参考*******/
/*****你说的是打印出一个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");
}
//是否还有其它的方法,我现在还不知道,只有等高手来了吧.
/*****你说的是打印出一个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");
}
//是否还有其它的方法,我现在还不知道,只有等高手来了吧.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询