㈠ 在c语言中异或的用法是什么
异或是一个数学运算符。它应用于逻辑运算。
在【布尔值运算】中:真异或假的结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值不相同,则异或结果为真。反之,为假。
在【二进制值运算】中:不同为1,相同为0,如1001异或1010等于0011。
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。
㈡ 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。。
有什么地方解释不清的可以再问我。。嘿嘿。。
㈢ c语言中同或、异或怎么表示
1、概念:参加运算的两个对象,按二进制位进行“与”运算,负数按补码形式参加按位与运算。
2、运算规则:0&0=0; 0&1=0;1&0=0;1&1=1;即:两位同时为“1”,结果才为“1”,否则为0【有0则0】
例如:3&5=1,即0000 0011 & 0000 0101 = 0000 0001
3、“与运算”特殊用途:
(1)清零。如果想将一个单元清零,即使其全部二进制位为0,只要与一个各位都为零的数值相与,结果为零。
(2)取一个数中指定位。找一个数,对应X要取的位,该数的对应位为1,其余位为零,此数与X进行“与运算”可以得到X中的指定位。
例:设X=10101110,取X的低4位,用 X & 0000 1111 = 0000 1110 即可得到;还可用来取X的2、4、6位。
二、按位或(|)
1、概念:参加运算的两个对象按二进制位进行“或”运算,负数按补码形式参加按位与运算。
2、运算规则:0|0=0;0|1=1;1|0=1;1|1=1;即 :参加运算的两个对象只要有一个为1,其值为1【有1则1】
例如:3|5=7,即 0000 0011 | 0000 0101 = 0000 0111
3、“或运算”特殊作用:
(1)常用来对一个数据的某些位置1。找到一个数,对应X要置1的位,该数的对应位为1,其余位为零。此数与X相或可使X中的某些位置1。
例:将X=10100000的低4位置1 ,用 X | 0000 1111 = 1010 1111即可得到。
三、异或运算(^)
1、概念:参加运算的两个数据,按二进制位进行“异或”运算
2、运算规则:0^0=0;0^1=1;1^0=1;1^1=0;即:参加运算的两个对象,如果两个相应位为“异”(值不同),则该位结果为1,否则为0【同0异1】
例如:3^5=6,即0000 0011^0000 0101 = 0000 0110
3、“异或运算”特殊作用:
(1)使特定位翻转 找一个数,对应X要翻转的各位,该数的对应位为1,其余位为零,此数与X对应位异或即可。
(2)与0相异或,保留原值 ,X ^ 0000 0000 = 1010 1110。
例:X=10101110,使X低4位翻转,用X ^ 0000 1111 = 1010 0001即可得到。
(3)基于异或运算,不引用新变量交换两个变量的值
a = a ^ b; b = a ^ b; a = a ^ b;
【同样基于加减法的话有:a = a + b; b = a - b; a = a -b;】
四、不同长度的数据进行位运算
如果两个不同长度的数据进行位运算时,系统会将二者按右端对齐,然后进行位运算。
以“与”运算为例说明如下:我们知道在C语言中long型占4个字节,int型占2个字节,如果一个long型数据与一个int型数据进行“与”运算,右端对齐后,左边不足的位依下面三种情况补足,
(1)如果整型数据为正数,左边补16个0。
(2)如果整型数据为负数,左边补16个1。
(3)如果整形数据为无符号数,左边也补16个0。
如:long a=123;int b=1;计算a & b。
如:long a=123;int b=-1;计算a & b。
如:long a=123;unsigned int b=1;计算a & b。
㈣ C语言的按位与、或、非、异或都什么意思。有什么用
这些是位操作运算符:参与运算的量,按二进制位进行运算。
在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算。C语言提供6种位运算符。
包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。
位运算符 & |~<< >> ∧ 按优先级从高到低排列的顺序是:
位运算符粗皮中求反运算“~“优先级最高,而左移和右移相同,居于第二,接下来的顺序是按位与 “&“、按位异或 “∧“和按位或 “|“。顺序为~ << >> & ∧ | 。
(4)c语言的异或啥意思扩展阅读:
例:设二进睁凳宽制数a是00101101 ,若通过异或运算a∧b 使a的高4位取反,低4位不变,则二进制数b是。
解析:异或运算常用来使特定位翻转,只要使需翻转的位与1进行异或操作就可以了,因为原数中值为1的位与1进行异或运算得0 ,原数中值为0的位与1进行异或运算结果得1。而与0进行异或的位将保持原值。异或运算还可用来交换两个值,不用临时变量。
如 int a=3 , b=4;,想将a与b的值互换,悉亮可用如下语句实现:
a=a∧b;
b=b∧a;
a=a∧b;
所以本题的答案为: 11110000 。
㈤ C语言的按位与、或、非、异或都什么意思。有什么用
位运算符有:&(按位与)、|(按位或)、^(按位异或)、~
(按位取反)。
优先级从高到低,依次为~、&、^、|
按位与运算有两种典型用法,一是取一个位串信息的某几位,如以下代码截取x的最低7位:x
&
0177。二是让某变量保留某几位,其余位置0,如以下代码让x只保留最低6位:x
=
x
&
077。
按位或运算的典型用法是将一个位串信息的某几位置为1。如将要获得最右4位为1,其他位与变量j原来其他位保持相同,可用逻辑或运算017|j;
按位异或运算的典型用法是求一个位串信息的某几位信息的反。如欲求整型变量j的最右4位信息的反,用逻辑异或运算017^j,就能求得j最右4位的信息的反,即原来为1的位,结果是0,原来为0的位,结果是1。
交换两个值,不用临时变量,假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:
a=a^b;
b=b^a;
a=a^b;
取反运算常用来生成与系统实现无关的常数。如要将变量x最低6位置成0,其余位不变,可用代码x
=
x
&
~077实现。
㈥ c语言中同或、异或怎么表示
同&&
或||
异!
拓展资料:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1]目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
㈦ 异或是什么意思
问题一:计算机术语中"异或"是什么意思? 1、异或是一个数学运算符。他应用于逻辑运算。
2、例如:真异或假结果是真,假异或真的结果也是真,真异或真的结果是假,假异或假的结果是假。就是说两个值相 异结果为真。
问题二:“异或”是什么意思 40分 0^0=0
0^1=1
1^0=1
1^1=0
简单说,就是不同为1,相同为0
问题三:或 异或 与 or xor and分别代表什么意思 OR是或运算,A OR B的结果:当A、B中只要有一个或者两个都为1时,结果为1,否则为0 XOR是异或运算,A XOR B的结果咐如:当A、B两个不同时结果为1,否则为0 上面是对于数字运算而言,如果是逻辑运算,把上面两句话的1替换为“真”、0替换为“假”即可。
问题四:c语言按位异或什么意思? 参与运算的两个值(该数值得用二进制表示),如果两个相应位相同,则结果为0,否则为1。即:0^0=0, 1^0=1, 0^1=1, 1^1=0
例如:10100001^00010001=10110000
0^0=0,0^1=1 0异或任何数=任何数
1^0=1,1^1=0 1异或任何数-任何数取激
任何数异或自己=把自己置0
问题五:逻辑异或运算是什么 在C++中用 ^ 运算符实现按位异定运算。
expression1^expression2
参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。 即:
0^0 = 0,
1^0 = 1,
0^1 = 1,
1^1 = 0
简单说,异或就是相同的出1,不同的出0
问题六:请问什么是异或校验? xor异或运算公式
1、逻辑加法(“或”运算)
逻辑加法通常用符号“+”或“∨”来表示。逻辑加法运算规则如下:
0+0=0, 0∨0=0
0+1=1, 0∨1=1
1+0=1, 1∨0=1
1+1=1, 1∨1=1
从上式衡慧启可见,逻辑加法有“或”的意义。也就是说,在给定的逻辑变量中,A或B只要有一个为1,其逻辑加的结果为1;两者都为1则逻辑加为1。
2、逻辑乘法(“与”运算)
逻辑乘法通常用符号“×”或“∧”或“・”来表示。逻辑乘法运算规则如下:
0×0=0, 0∧0=0, 0・0=0
0×1=0, 0∧1=0, 0・1=0
1×0=0, 1∧0=0, 1・0=0
1×1=1, 1∧1=1, 1・1=1
不难看出,逻辑乘法有“与”的意义。它表示只当参与运算的逻辑变量都同时取值为1时,其逻辑乘积才等于1。
3、逻辑否定(非运算)
逻辑非运算又称逻辑否运算。其运算规则为:
0=1 非0等于1
1=0 非1等于0
4、异或逻辑运算(半加运算)
异或运算通常用符号表示,其运算规则为:
00=0 0同0异或,结果为0
01=1 0同1异或,结果为1
10=1 1同0异或,结果为1
11=0 1同1异或,结果为0
即两个逻辑变量相异,输出才为1
异或校验算法(又称为BCC校验)
常见的校验方法有:奇偶校验、循环冗余校验CRC、异或校验、校验碧迅和、汉明校验
搞了半天,异或校验就是偶校验
下面就是异或校验的算法,多用于串口通信。其它校验方法以后用到再研究吧!
#include stdio.h
void main()
{
int i;
任意10个数值,也可以不是8位
unsigned char data[10]={0x12,0x21,0x1A,0xB1,0xC1,0xEB,0xDF,0xCA,0xF6,0xDD};
unsigned char out;用于保存异或结果
out=0x00;
for (i=0;i>
㈧ 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语言中同或、异或怎么表示
异或有专门的操作符^,比如int
a,b,c,d;c=a^b;,则表示c是a与b异或的结果。C中虽然没有同或操作符,但由逻辑关系知同或是异或的非,所以d=!(a^b);,那么d就是a与b同或的结果。
㈩ 计算机术语中"异或"是什么意思
异或,英文为exclusive OR,缩写成xor。异或(xor)是一个数学运算符。它应用于逻辑运算。异或的数学符号为“⊕”,计算机符号为“xor”。
其运算法则为:
a⊕b = (¬a ∧ b) ∨ (a ∧¬b),如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
运算方法如下:
真⊕假=真
假⊕真=真
假⊕假=假
真⊕真=假
或者为:
True ⊕ False = True
False ⊕ True = True
False ⊕ False = False
True ⊕ True = False
拓展资料
异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,此凯0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这渗扒闹些法则与加法是丛罩相同的,只是不带进位,所以异或常被认作不进位加法。
在计算机中普遍运用,异或(xor)的逻辑符号一般用xor,也有用⊕的:真⊕假=真、假⊕真=真、假⊕假=假、真⊕真=假
C语言和C++语言的异或不用xor,而是用“^”,键入方式为Shift+6。(而其它语言的“^”一般表示乘方)
资料来源:网络《异或》