读书人

异或地有关问题

发布时间: 2012-02-12 17:16:33 作者: rapoo

异或地问题
请问各位前辈,在c语言中char型的数据可以异或吗?
为什么我把2个char型的数据异或其中的有些位出结果有些位不出结果呢?
unsigned char scram(unsigned char x)
{
// unsigned char temp2[23];
int i;
unsigned char t1,t2;
unsigned char y;
y=x^(temp[17]^temp[22]);

t2=temp[0];
temp[0]=y;

for(i=1;i <23;i++)
{
t1=temp[i];
temp[i]=t2;
t2=t1;
}
return y;
}
请大家看看这是怎么了

[解决办法]
char型进行异或操作时先把char变量转换成int型后再进行异或运算
[解决办法]
位运算只针对int和char。
[解决办法]
不用自己转,运算的时候会隐式自动转换
你说有些位出结果有些位不出结果,是什么意思,说具体点,举个例子
[解决办法]
出现笑脸那是因为运算后ASCII的值> 127了

我看不明白你的程序在做什么,你说说你的程序的意图

读书人网 >C语言

热点推荐