1樓:慕佑平虞娟
你是打算對數字進行異或,需要將字元變成數字,異或完後再變回字元我只簡單寫了一下,沒有異常處理,順便說你b中f少了一個#include
intctoi(char
c)char
itoc(int
i)int
main()
printf("%s\n",c);
return0;}
2樓:殳振華懷霜
c語言異或加密實現的原理為,將任意值,與相同值兩次異或後,結果與原值相同。所以可以通過將源資料與一個固定的值(祕鑰key)異或後,得到密文,然後將密文再次與祕鑰異或,得到原文。這樣就實現了異或加密及解密。
c語言中的異或是一種按位操作的計算,其計算原理為,運算元對應位上的值相同,則結果位上值為0,否則為1.異或的運算子號為^,於是真值表如下:
0^0=0
0^1=1
1^0=1
1^1=0
這樣區分源資料和祕鑰值,有如下四種可能:
0^0=0
0^0=0
0^1=1
1^1=0
1^0=1
1^0=1
1^1=0
0^1=1
以上是將一個值,用另一個值連續異或兩次後的計算過程,可以看到,最終的值與原始值是相同的。這就是異或加密的基礎原理。
c語言異或操作
3樓:匿名使用者
你是打算對數字進行異或,需要將字元變成數字,異或完後再變回字元我只簡單寫了一下,沒有異常處理,順便說你b中f少了一個#include
int ctoi(char c)
char itoc(int i)
int main()
printf("%s\n",c);
return 0;}
4樓:星月小木木
c語言的異或操作是位操作的一種,其運算子號為^。
要打出這個符號,需要在英文輸入法下,輸入shift + 6即 1 按下shift, 左右均可;
2 按6, 即按下,抬起;
3 抬起shift。
異或操作是按位操作,當兩個運算元同一位上值相同時(同為1或同為0),結果對應位上的值為0;否則值為1。
在c語言中異或的用法是什麼?
5樓:
異或是一個數**算符。它應用於邏輯運算。
在【布林值運算】中:真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。
在【二進位制值運算】中:不同為1,相同為0,如1001異或1010等於0011。
異或也叫半加運算,其運演算法則相當於不帶進位的二進位制加法:二進位制下用1表示真,0表示假,則異或的運演算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。
求在c語言中異或的用法,也就這個「^"符號,謝謝
6樓:
異或是一個數**算符。它應用於邏輯運算。
在【布林值運算】中:真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。
在【二進位制值運算】中:不同為1,相同為0,如1001異或1010等於0011。
異或也叫半加運算,其運演算法則相當於不帶進位的二進位制加法:二進位制下用1表示真,0表示假,則異或的運演算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。
7樓:匿名使用者
1.與1異或,可以使特定位翻轉,
2.與0異或,保留其值
3.交換兩值,不使用臨時變數。a=a^b;b=b^a;a=a^b;
c語言,怎麼打 異或 運算子
8樓:匿名使用者
c語言的異或操作是位操作的一種,其運算子號為^。
要打出這個符號,需要在英文輸入法下,輸入shift + 6即 1 按下shift, 左右均可;
2 按6, 即按下,抬起;
3 抬起shift。
異或操作是按位操作,當兩個運算元同一位上值相同時(同為1或同為0),結果對應位上的值為0;否則值為1。
9樓:匿名使用者
回車鍵的上面有一個"\"鍵。你按"shift 鍵+\ 鍵"就出來"||"了,這些全是組合鍵,要按出這些字元來,都要按shift鍵
10樓:匿名使用者
樓上說的是|或運算子
異或是^ shift+6,不是小鍵盤上的6,是f5下面的6
11樓:凡凡渣渣
你說的是o內的x合成的符號嗎?
12樓:匿名使用者
邏輯異或不就^麼
shift+6
13樓:匿名使用者
異或是^ shift+6
c語言 異或運算
14樓:匿名使用者
#include
#include
#include
int main()
printf("請輸入金鑰,並牢記,解密時要再次輸入:");//只要再對加密的檔案再進行一次異或運算就得到原始檔
n=getch();
printf("*\n");
while(1)
fclose(p1);
fclose(p2);
return 0;}
15樓:杭嘉澍鄔鑫
上式相當於b^=a;a^=b;因此,a=b=233。相當於,a^b^a,得到b原來的值。
c語言按位異或
16樓:雷特生杰特猛
以上**其實實現的是a和b不借助第三個變數來交換之間的值;b=a^b^b不等於b=a^0;因計算是從左往右的順序,如果a=a^b,那麼b=a^b^b等於b=a^b; a=a^b^b^a^b也同樣理解
17樓:
^不知道你在問什麼問題!整型數a^0還是整型數a。^是左-->右結合的,0^b^0就是(0^b)^0,所以結果還是b。
b=a^b^b和a=a^b^b^a^b不知=是賦值還是==,要是賦值,前者的結果是b的值為a,後者的結果是a的值是b;要是等式,即是==,那顯然是錯誤的,應該是a=a^b^b和b=a^b^b^a^b才對。
18樓:匿名使用者
按位異或需要將異或雙方轉換成二進位制數,如當a=5時,二進位制為101,與0異或後結果為100,也就是b=4的二進位制了。
異或時的規則是:逐位進行比較,相同為0(即1與1異或為0,0與0異或為0),不同為1(即0與1異或為1,1與0異或為1)。
19樓:源玉巧茅煙
按位異或,其操作符為^,形式為
a^b計算時,根據運算元a和b每位的值,計算結果,當a,b的對應位上值相同時,結果的該位上值為0,否則值為1。
如chara=
0x12,b=
0x34;
a^b=
0x12
^0x34
=b0001
0010
^b0011
0100
=b0010
0110
=0x26
c語言 異或 運算子的使用
20樓:匿名使用者
異或的意思就是相異為真。。
現在問題主要是出現在這一句。。專
b[--i]=a[j]^a[--j];
注意啦。。編屬譯器編譯的時候是從後向前的。。也就是先算a[--j],這樣j就先自減了。。j從3變為2。。然後再算a[j],因為j是2,呼叫的時候,就是調a[2]
所以整個語句第一次執行的時候就是b[2]=a[2]^a[2],結果顯然是0;
所以輸出的是1100。。
有什麼地方解釋不清的可以再問我。。嘿嘿。。
21樓:匿名使用者
奇了 這句始終輸出的是 0printf("%d",a[j]^a[--j]);但是用printf("%d",a[3]^a[2]);卻能輸出 1 想不通。。。。。繼續研究
c語言裡的按位異或運算子
22樓:東弘肖琭
1:「按位與」運算子(&)全1為1,有0則0。0&0=0,1&0=0,1&1=1
2:「按位或」運算子(|)有1則1,全0則0。0|0=0,1|0=1,
1|1=1
3:「異或」運算子(^)相同為0,不同為1。0^0=0,1^0=1,1^1=0
23樓:棟黎胥美
1:「按位與」運算子(&)用法是如果兩個相應的二進位制位都為1,則該位的結果值為1否則為0。0&0=0,1&0=0,1&1=1
2:「按位或」運算子(|)用法是如果兩個相應的二進位制位有一個為1,則該位的結果值為1否則為0。0&0=0,1&0=0,1&1=1
0,1&0=1,1&1=1
3:「異或」運算子(^)用法是如果兩個相應的二進位制位為同號,則該位的結果值為1否則為0。0&0=1,1&0=0,1&1=1
24樓:洛德業劇溫
c語言中^為按位異或運算子,若兩個二進位制位相同,則結果為0,不同為1#include
"stdio.h"
main()
函式輸出結果為12
將6和10分別轉換為2進位制數為0110(前邊補了個0)和1010。然後按照定義進行異或運算
0110
a1010
b1100
a和b最左邊第一位和第二位不相同,所以分別為1,第三位和第四位相同,所以分別為0
二進位制數1100轉換為10進位制數,結果是12。
25樓:以元魁袁璠
以下的答案中異或,解釋錯誤,相同為0,不同為1
26樓:欒霏闕念寒
異或運算子∧也稱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語言中邏輯或的 豎線怎麼打啊
千鋒教育 同時按鍵盤上的這兩個鍵 c語言適用範圍大 適合於多種作業系統,如windows linux dos unix等等 也適用於多種機型。c語言對編寫需要硬體進行操作的場合,優於其它高階語言,有一些大型應用軟體也是用c語言編寫的。 塵世間的菜鳥 shift鍵加 這個鍵,平時就是 的這個,就可以打...
c語言,c語言,C語言中 與 的區別
第4題 include using namespace std void main else 這兒是隨機生成 else 這兒是隨機生成 int main 第7題 include strinv char str str n 0 int main 本來想幫你全做的,不過6,7好像有人做了,那就幫你做了4...
label在c語言中是什麼意思,在C語言中loop是什麼意思?
四舍 入 標籤的意思,一般用在goto語句中。比如 lable 001就是一個標籤 void main int a 0 int b printf hello lable 001 printf hello,lable 001 n a if a 5 goto lable 001 printf hello...