本文目錄一覽:
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的數值「巧妙」地交換了……
我也是百度的,和樓主一起學習…………
原創文章,作者:KCSE,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/134911.html