C语言计算问题

 我来答
柔滑还舒缓丶东风C
2020-01-28 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:26%
帮助的人:783万
展开全部
答案是22.。
t=(++i)+(++i)+(++i)=6+8+8=22。。
为什么呢。这是v
c++编译器
的特性。就是最后两个数的优先级是相同的。。这样说起来有点抽象。举几个例子您自己去琢磨吧。。

这是因为31=6+7+9+9。。

这是因为41=6+7+8+10+10

这是因为52=6+7+8+9+11+11。。
我只能这样解释了。。什么看不懂的再问我吧。。嘿嘿。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盘季问浩
2020-02-01 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:26%
帮助的人:835万
展开全部
C语言里以0开头的数表示是八进制数,那么,八进制转换成二进制的方法是,一个八进制位占3个二进制位
如果用二进制表示那么
x=001011
y=010101
z=000001
~z=111110
&的优先级高于^,,,^优先级高于|
y&z=000001,.x|y&z=001011,即十进制的11,所以第一个用%d输出的是11
y&~z=010100,.x|y&~z=011111,十进制的31
y&~z=010111,x^y&~z=011111,十进制的31
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
实娜夫白
2020-01-29 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:936万
展开全部
首先x,y,z都是八进制的数,这里面的运算都是用二进制的所以化为二进制是x=00001011,y=0010101,
z
=
00000001(用八位表示,不足八位的用0补足)
(1)先进行与运算再进行或运算即(x|(y&z))

00001011
|
(00010101
&00000001)
=
(00001011)=
11(十进制)
(2)先进行取反再进行与运算,最后或运算即(x|(y&(~z))
00001011|(00010101&(~00000001))=00011111
=
31(十进制)
(3)先进行取反再进行与运算,最后进行异或运算即(x^(y&(~z))
00001011^(00010101&(~00000001))=00011111=31(十进制)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
燕澹厉采
2020-02-04 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:26%
帮助的人:868万
展开全部
求反运算
求反运算符~为单目运算符,具有右结合性。
其功能是对参与运算的数的各二进位按位求反。例如~9的运算为:
~(0000000000001001)结果为:1111111111110110

按位或运算
按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。
例如:9|5可写算式如下:
00001001|00000101
00001101
(十进制为13)可见9|5=13

按位与运算
按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1
,否则为0。参与运算的数以补码方式出现。
例如:9&5可写算式如下:
00001001
(9的二进制补码)&00000101
(5的二进制补码) 00000001
(1的二进制补码)可见9&5=1。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式