C语言中x^y是什么意思?

如题所述

x^y的意思是按位异或,当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0。

也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0⊕0=0,1⊕0=1,0⊕1=1,1⊕1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位,所以异或常被认作不进位加法。


扩展资料

若需要交换两个变量的值,除了通常使用的借用中间变量进行交换外,还可以利用异或,仅使用两个变量进行交换。

位运算时把数字用二进制表示之后,对每一位上0或者1的运算。理解位运算的第一步是理解二进制。二进制是指数字的每一位都是0或者1.比如十进制的2转化为二进制之后就是10。

右移运算符m>>n表示把m右移n位。右移n位的时候,最右边的n位将被丢弃。但右移时处理最左边位的情形要稍微复杂一点。这里要特别注意,如果数字是一个无符号数值,则用0填补最左边的n位。如果数字是一个有符号数值,则用数字的符号位填补最左边的n位。


参考资料来源:百度百科-异或

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-07
"x!" -- 字符串 内容是 x!
// x! -- 注解行
/* x! */ -- 注解行

条件:
if ( x!= 0) printf("x not equ zero \n"); else printf("x == zero \n");
如果 x 不等于 0 则打印 x not equ zero, 否则 打印 x == zero
!= 组合在一起是逻辑运算符“不等于”

!x -- 这个表示 对 x 作 “非”运算。
第2个回答  2018-01-05
%x是16进制输出.
%8x是输出8位
%#x是带格式输出, 效果为在输出前加0x.
所以 这里就是以16进制输出y值,并在前面加0x前缀, 如果输出小于8位,那么实际输出8位,左侧补空格.
比如 y=0x20那么会输出
y= 0x20
如果y=0x12345678
那么会输出
y=0x12345678
第3个回答  2015-09-28
1,首先,要知道x^=y这个表达式相当于x=x^y.
2,"^"这个符号是按位异或运算符
3,^运算符的运算方式如下:
(1)将两个数即这里的x,y转化为二进制数。
(2)参加运算的两个二进位同号则结果为0(假),异号为1(真)
(3)运算规则:0^0=0; 0^1=1; 1^0=1; 1^1=0
具体例子如下:
计算4^5:
00000000.........00000100
00000000.........00000101
--------------------------------
00000000.........00000001 转换十进制为1
所以4^5=1
第4个回答  2017-11-06
a=2*b的意思是b乘以2,并将计算结果赋给变量a
b=a+b=1+0=1,输出1,
a=2*b=2*1=2,输出2
因此输出结果为1,2
选D
相似回答