首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

异或地有关问题

2012-02-12 
异或地问题请问各位前辈,在c语言中char型的数据可以异或吗?为什么我把2个char型的数据异或其中的有些位出

异或地问题
请问各位前辈,在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了

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

热点排行