您的位置:

c语言异或运算代码实现,C语言异或运算符

本文目录一览:

如何用C语言实现两个16进制数的异或

C语言中,异或运算符是^。

不管运算对象是10进制的数还是16进制的数(或其他进制的数),进行^运算时,都是将运算对象转换为二进制,按位进行异或运算。

举例说明如下:

int a=0x9a, b=0x56;

int c = a^b; // 将a和b进行异或运算

运算过程是

a = 1001 1010 // 0x9a

b = 0101 0110 // 0x56

c = 1100 1100 // 0xcc (对应的二进制位进行异或运算)

输出的时候可以按16进制输出,如:

printf("%x", c);

c语言异或操作

C语言的异或操作是位操作的一种,其运算符号为^。

要打出这个符号,需要在英文输入法下,输入shift + 6

1 按下shift, 左右均可;

2 按6, 即按下,抬起;

3 抬起shift。

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

C语言 异或运算

#include stdio.h

#include stdlib.h

#include conio.h

int main()

{

FILE *p1,*p2;

char ch,n;

p1=fopen("D:\\源文件.txt","r");

p2=fopen("D:\\目标文件.txt","w");

if(p1==NULL||p2==NULL)

{

printf("文件打开失败\n");

exit(0);

}

printf("请输入密钥,并牢记,解密时要再次输入:");//只要再对加密的文件再进行一次异或运算就得到源文件

n=getch();

printf("*\n");

while(1)

{

ch=fgetc(p1);

if(ch==EOF)

break;

ch=ch^n;

fputc(ch,p2);

fflush(p2);

}

fclose(p1);

fclose(p2);

return 0;

}