c語言xor
1. c語言的異或運算
異或是一個數學運算符。它應用於邏輯運算。
在【布爾值運算】中:真異或假的結回果是真答,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。
在【二進制值運算】中:不同為1,相同為0,如1001異或1010等於0011。
異或也叫半加運算,其運演算法則相當於不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運演算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。
2. C語言 異或 運算符的使用
異或的意思就是相異為真。。
現在問題主要是出現在這一句。。
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。。
有什麼地方解釋不清的可以再問我。。嘿嘿。。
3. 在c語言中異或的用法是什麼
異或是一個數學運算符。它應用於邏輯運算。
在【布爾值運算】中:真異或假內的結果是真,假異或真容的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。
在【二進制值運算】中:不同為1,相同為0,如1001異或1010等於0011。
異或也叫半加運算,其運演算法則相當於不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運演算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。
4. 求在c語言中異或的用法,也就這個「^"符號,謝謝
異或是一來個數學運算符。它應自用於邏輯運算。
在【布爾值運算】中:真異或假的結果是真,假異或真的結果也是真,真異或真的結果是假,假異或假的結果是假。就是說兩個值不相同,則異或結果為真。反之,為假。
在【二進制值運算】中:不同為1,相同為0,如1001異或1010等於0011。
異或也叫半加運算,其運演算法則相當於不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運演算法則為:0異或0=0,1異或0=1,0異或1=1,1異或1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位。
5. C語言里的按位異或運算符
按位異或,其操作符為^,形式為
a^b
計算時,根據操作數a和b每位的值,計算結果內,當a,b的對應位上值相同時容,結果的該位上值為0,否則值為1。
如
char a = 0x12, b = 0x34;
a^b
= 0x12 ^ 0x34
= B0001 0010 ^ B0011 0100
= B0010 0110
=0x26
(5)c語言xor擴展閱讀:
異或,英文為exclusive OR,縮寫成xor異或(xor)是一個數學運算符。它應用於邏輯運算。異或的數學符號為「⊕」,計算機符號為「xor」。其運演算法則為:a⊕b = (¬a ∧ b) ∨ (a ∧¬b)
如果a、b兩個值不相同,則異或結果為1。如果a、b兩個值相同,異或結果為0。
異或也叫半加運算,其運演算法則相當於不帶進位的二進制加法:二進制下用1表示真,0表示假,則異或的運演算法則為:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同為0,異為1),這些法則與加法是相同的,只是不帶進位,所以異或常被認作不進位加法。
6. 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;
}
7. c語言中XOR是什麼意思請問有什麼作用左移右移呢能不能舉個例子,我剛學不太明白,不懂。
xor是異或的意思,左移右移什麼的都是位運算,都是二進制層面計算的,比如2^1 就是2XOR1, 換為二進制是10 ^ 01 異或就是相同為0不同為1,那麼結果就是11,就是3,異或有很巧妙的作用,以後可能會接觸到,左移右移就是換為二進制然後向左移位,或者向右移位,左移:照二進制值每位向高位移動n位; 最高位(最左邊的)n位捨去;最低位(最右邊)填加n個0.比如6是00000110,左移就是00001000,就是12 00000110右移就是00000011,就是3
8. c語言異或操作
你是打算對數字進行異或,需要將字元變成數字,異或完後再變回字元
我只簡單寫了一下,沒有異常處理,順便說你b中F少了一個
#include <stdio.h>
int ctoi(char c)
{
if(c>='0'&&c<='9')
return c-48;
else if(c>='A'&&c<='F')
return c-55;
else if(c>='a'&&c<='f')
return c-87;
else
return -1;
}
char itoc(int i)
{
if(i>=0&&i<=9)
return i+48;
else if(i>=10&&i<=15)
return i+55;
else
return 0;
}
int main()
{
char *a="0000400000123456";
char *b="0592389FFFFFFFFF";
char *c="0000000000000000";
int i=0;
int ai,bi,ci;
while(a[i])
{
ai=ctoi(a[i]);
bi=ctoi(b[i]);
ci=ai^bi;
c[i]=itoc(ci);
i++;
}
printf("%s\n",c);
return 0;
}
9. 請問C語言中的邏輯異或^怎麼用
必須不同才為真(1),否則為假(0)
例如兩個2進制數異或
10110100
01101010
11011110
第三行為上面兩行2進制數異或的結果
10. C語言,怎麼打 異或 運算符
C語言的異或操作是位操作的一種,其運算符號為^。
要打出這個符號,需要在英文版輸入法下,輸入shift + 6
即
1 按下權shift, 左右均可;
2 按6, 即按下,抬起;
3 抬起shift。
異或操作是按位操作,當兩個操作數同一位上值相同時(同為1或同為0),結果對應位上的值為0;否則值為1。