您的位置:

关于c语言异或运算的,C语言 异或运算

本文目录一览:

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;

}

C语言里的按位异或运算符

异或运算符∧也称XOR运算符,它的作用是判断参加运算的两个二进制位是否为同号,若同号则结果为0;异号则为1。即0异或0=0,1异或0=1,1异或1=0。

应用:

1、使特定位翻转。假设有01111010,想使其低4位翻转。可以将它与0000111进行异或运算,结果为01110101。

2、与0异或,保留原值。如012异或00=012.

3、交换两个值,不用临时变量。假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:

a=a异或b;

b=b异或a;

a=a异或b;

C语言位运算符:与、或、异或、取反、左移和右移

位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。

按位与 如果两个相应的二进制位都为1,则该位的结果值为1,否则为0

| 按位或 两个相应的二进制位中只要有一个为1,该位的结果值为1

^ 按位异或 若参加运算的两个二进制位值相同则为0,否则为1

~ 取反 ~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0

左移 用来将一个数的各二进制位全部左移N位,右补0

右移 将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0

c语言异或操作

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

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

1 按下shift, 左右均可;

2 按6, 即按下,抬起;

3 抬起shift。

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

c语言里异或运算是哪个符号?要包含什么头文件么

C语言中的异或符号是:^

,输入方式是shitf

+6,它是一个内部运算符,不用包含任何文件。

异或是一个位运算符,它的主要功能如下:

1.与1异或,可以使特定位翻转;

2.与0异或,保留其值;

3.交换两值,不使用临时变量。代码:a=a^b;b=b^a;a=a^b。

C语言 异或 运算符的使用

异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。

异或略称为XOR、EOR、EX-OR

程序中有三种演算子:XOR、xor、⊕。

使用方法如下

z

=

x

y

z

=

x

xor

y

请帮我讲解一下C语言中的异或运算

首先,我们看一下异或的原理:

a = 3 ^ 5;

3的二进制是0011,5的二进制是0101。异或发现两者的不同之处,所以a最终为0110b(4)。

了解了异或的基本原理后,接下来看上述的代码。

a^=b;

这一句使得a被赋值为“数值a”与“数值b”的“差异值”。

然后:b^=a;

这一句用异或利用“差异值”来还原a的数值,并赋值给b。此时b等于a先前的数值。

最后一句:a^=b;

因为a仍然保存着“差异值”,这一句通过异或使得b的初始值被还原,并赋值给a。

。。。。。

这样,异或就将a与b的数值“巧妙”地交换了……

我也是百度的,和楼主一起学习…………