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。