本文目录一览:
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的数值“巧妙”地交换了……
我也是百度的,和楼主一起学习…………