c语言异或操作

   更新日期:2024.05.10
C语言的异或操作是位操作的一种,其运算符号为^。
要打出这个符号,需要在英文输入法下,输入shift + 6

1 按下shift, 左右均可;
2 按6, 即按下,抬起;
3 抬起shift。

异或操作是按位操作,当两个操作数同一位上值相同时(同为1或同为0),结果对应位上的值为0;否则值为1。

你是打算对数字进行异或,需要将字符变成数字,异或完后再变回字符
我只简单写了一下,没有异常处理,顺便说你b中F少了一个

#include <stdio.h>

int ctoi(char c)
{
if(c>='0'&&c<='9')
return c-48;
else if(c>='A'&&c<='F')
return c-55;
else if(c>='a'&&c<='f')
return c-87;
else
return -1;
}

char itoc(int i)
{
if(i>=0&&i<=9)
return i+48;
else if(i>=10&&i<=15)
return i+55;
else
return 0;
}

int main()
{
char *a="0000400000123456";
char *b="0592389FFFFFFFFF";
char *c="0000000000000000";
int i=0;
int ai,bi,ci;
while(a[i])
{
ai=ctoi(a[i]);
bi=ctoi(b[i]);
ci=ai^bi;
c[i]=itoc(ci);
i++;
}
printf("%s\n",c);
return 0;
}

  • 19361789429 :C语言中^的问题
    雷叙剑4912 :答:^意思是异或,二进制表示中,相异则为1,例如0^1=1,但是1^1=0,0^0=0。所以把a写为0001,b为0010,c为0011 首先a^b结果是0011 然后0011&c结果是0011,x为3。其中&意思是都为1,结果才为1。例如1&1=1, 0...
  • 19361789429 :c语言中同或、异或怎么表示
    雷叙剑4912 :答:以“与”运算为例说明如下:我们知道在C语言中long型占4个字节,int型占2个字节,如果一个long型数据与一个int型数据进行“与”运算,右端对齐后,左边不足的位依下面三种情况补足,(1)如果整型数据为正数,左边补16个...
  • 19361789429 :C中的^是什么运算??
    雷叙剑4912 :答:C语言中,“^”是异或操作,“^=”是异或赋值操作。a ^= a 就是 a = a^a 由于异或操作的性质,a^a永远为0,因此等效于a = 0
  • 19361789429 :C语言中 ^怎么用
    雷叙剑4912 :答:在C语言中,“^”是双目运算符,用于完成两个数据的按位异或操作。该运算符可以用来进行两个数据的比较或者对一个数据中的某些位进行处理。1、if(a^0x8)a=0;//如果a不等于08H则a=0 2、a=a^0xf0;//将a的高4...
  • 19361789429 :C语言里的按位异或运算符
    雷叙剑4912 :答:按位异或,其操作符为^,形式为a^b计算时,根据操作数a和b每位的值,计算结果,当a,b的对应位上值相同时,结果的该位上值为0,否则值为1。如char a = 0x12, b = 0x34;a^b= 0x12 ^ 0x34= B0001 0010 ^...
  • 19361789429 :C语言的按位与、或、非、异或都什么意思。有什么用
    雷叙剑4912 :答:这些是位操作运算符:参与运算的量,按二进制位进行运算。在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算。C语言提供6种位运算符。包括位与(&)、位或(|)、位非(~)、位...
  • 19361789429 :在c语言中异或的用法是什么?
    雷叙剑4912 :答:异或是一个数学运算符。它应用于逻辑运算。在【布尔值运算】中:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。在【二进制...
  • 19361789429 :C语言的按位与,或,非,异或都什么意思.有什么用
    雷叙剑4912 :答:位运算符有:&(按位与)、|(按位或)、^(按位异或)、~ (按位取反)。优先级从高到低,依次为~、&、^、| 按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x & 0177。二是...
  • 19361789429 :如何用C语言实现两个16进制数的异或
    雷叙剑4912 :答:C语言中,异或运算符是^。不管运算对象是10进制的数还是16进制的数(或其他进制的数),进行^运算时,都是将运算对象转换为二进制,按位进行异或运算。举例说明如下:int a=0x9a, b=0x56;int c = a^b; // 将...
  • 19361789429 :C语言中99^~0x6a等于什么?
    雷叙剑4912 :答:在C语言中,符号^表示按位异或操作。当用^操作符对两个整数进行按位异或操作时,其结果是将两个整数的二进制表示中相同位置上的位进行异或操作后得到的新的二进制数。因此,99^~0x6a的值等于一个整数,其二进制表示中...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网