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

 我来答
床前明月儿
高能答主

2019-11-12 · 探索生活中的另一种可能
床前明月儿
采纳数:101 获赞数:171947

向TA提问 私信TA
展开全部

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位。


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

金色潜鸟
2013-09-07 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5680万
展开全部
"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 作 “非”运算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
2018-01-05 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450127
专业C/C++软件开发

向TA提问 私信TA
展开全部
%x是16进制输出.
%8x是输出8位
%#x是带格式输出, 效果为在输出前加0x.
所以 这里就是以16进制输出y值,并在前面加0x前缀, 如果输出小于8位,那么实际输出8位,左侧补空格.
比如 y=0x20那么会输出
y= 0x20
如果y=0x12345678
那么会输出
y=0x12345678
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
萧竣闰
2015-09-28 · TA获得超过893个赞
知道小有建树答主
回答量:685
采纳率:81%
帮助的人:195万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuzhouliuying
高粉答主

2017-11-06 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.5亿
展开全部
a=2*b的意思是b乘以2,并将计算结果赋给变量a
b=a+b=1+0=1,输出1,
a=2*b=2*1=2,输出2
因此输出结果为1,2
选D
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(24)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式