在C++的语言中, 那个优先级是怎么样的?

若a=1,b=2,c=3,下列各式的结果是什么?1.a|b-c2.a^b&-c3.a&b|c4.a|b&c解:1.-12.13.34.3请问这是怎么算的?求高手给个详细过... 若a = 1,b = 2,c = 3,下列各式的结果是什么?
1. a | b - c
2. a ^ b & -c
3. a & b | c
4. a | b & c
解:
1. -1
2. 1
3. 3
4. 3
请问这是怎么算的?求高手给个详细过程!
展开
 我来答
抽空记忆11
2013-10-08 · TA获得超过1139个赞
知道小有建树答主
回答量:1071
采纳率:0%
帮助的人:339万
展开全部
附录C C语言运算符优先级和结合性
优先级 运算符 含义 运算类型 结合性
1 ( )
[ ]
->
, 圆括号
下标运算符
指向结构体成员运算符
结构体成员运算符 单目 自左向右
2 !
~
++ --
(类型关键字)
+ -
*
&
sizeof 逻辑非运算符
按位取反运算符
自增、自尖运算符
强制类型转换
正、负号运算符
指针运算符
地址运算符
长度运算符 单目 自右向左
3 * / % 乘、除、求余运算符 双目 自左向右
4 + - 加、减运算符 双目 自左向右
5 <<
>> 左移运算符
右移运算符 双目 自左向右
6 < <= > >= 小于、大于、小于等于、大于等于 关系 自左向右
7 = = != 等于、不等于 关系 自左向右
8 & 按位与运算符 位运算 自左向右
9 ^ 按位异或运算符 位运算 自左向右
10 | 按位或运算符 位运算 自左向右
11 && 逻辑与运算符 位运算 自左向右
12 || 逻辑或运算符 位运算 自左向右
13 ? : 条件运算符 三目 自右向左
14 = += -= *=
/= %= << = >>= &= ^= |= 赋值运算符 双目 自右向左
15 , 逗号运算 顺序 自左向右
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BOOK_LIFE
2013-10-08 · 超过22用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:52万
展开全部
就是和加减乘除差不多,优先级高的先算.四则运算这有俩级,c++有十几级,遇到同级从左到右,也有是右结合的,看情况了
1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yasigi
2013-10-08 · TA获得超过208个赞
知道小有建树答主
回答量:262
采纳率:100%
帮助的人:229万
展开全部
1. a | b - c = ( a | ( b - c))
b - c = -1
a | -1 = -1

2. a ^ b & -c = (( a ^ b) & (- c))
a ^ b = 3
3 & - 3 = 1

3. a & b | c = ((a & b) | c)
a & b = 0
0 | c = 3

4. a | b & c = ((a | b) & c)
a | b = 3
3 & c = 3
追问
不好意思,我还是看不懂,能解释一下吗?为什么a | -1 = -1,3 & - 3 = 1,0 | c = 3,3 & c = 3
?这个不用换成二进制来算的吗?
追答
是转成2进制计算,C++的负数会转化成2的补数储存,也就是0/1互换後+1
1的2进制为 0001,-1 则为 1111
a | -1 = 0001b + 1111b = 0001b = 1

同理
3 & - 3 = 1 --> 0011b & 1101b = 0001b = 1

0 | c = 3 --> 0000b + 0011b = 0011b = 3

3 & c = 3 --> 0011b & 0011b = 0011b = 3
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式