
在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
请问这是怎么算的?求高手给个详细过程! 展开
1. a | b - c
2. a ^ b & -c
3. a & b | c
4. a | b & c
解:
1. -1
2. 1
3. 3
4. 3
请问这是怎么算的?求高手给个详细过程! 展开
展开全部
附录C C语言运算符优先级和结合性
优先级 运算符 含义 运算类型 结合性
1 ( )
[ ]
->
, 圆括号
下标运算符
指向结构体成员运算符
结构体成员运算符 单目 自左向右
2 !
~
++ --
(类型关键字)
+ -
*
&
sizeof 逻辑非运算符
按位取反运算符
自增、自尖运算符
强制类型转换
正、负号运算符
指针运算符
地址运算符
长度运算符 单目 自右向左
3 * / % 乘、除、求余运算符 双目 自左向右
4 + - 加、减运算符 双目 自左向右
5 <<
>> 左移运算符
右移运算符 双目 自左向右
6 < <= > >= 小于、大于、小于等于、大于等于 关系 自左向右
7 = = != 等于、不等于 关系 自左向右
8 & 按位与运算符 位运算 自左向右
9 ^ 按位异或运算符 位运算 自左向右
10 | 按位或运算符 位运算 自左向右
11 && 逻辑与运算符 位运算 自左向右
12 || 逻辑或运算符 位运算 自左向右
13 ? : 条件运算符 三目 自右向左
14 = += -= *=
/= %= << = >>= &= ^= |= 赋值运算符 双目 自右向左
15 , 逗号运算 顺序 自左向右
优先级 运算符 含义 运算类型 结合性
1 ( )
[ ]
->
, 圆括号
下标运算符
指向结构体成员运算符
结构体成员运算符 单目 自左向右
2 !
~
++ --
(类型关键字)
+ -
*
&
sizeof 逻辑非运算符
按位取反运算符
自增、自尖运算符
强制类型转换
正、负号运算符
指针运算符
地址运算符
长度运算符 单目 自右向左
3 * / % 乘、除、求余运算符 双目 自左向右
4 + - 加、减运算符 双目 自左向右
5 <<
>> 左移运算符
右移运算符 双目 自左向右
6 < <= > >= 小于、大于、小于等于、大于等于 关系 自左向右
7 = = != 等于、不等于 关系 自左向右
8 & 按位与运算符 位运算 自左向右
9 ^ 按位异或运算符 位运算 自左向右
10 | 按位或运算符 位运算 自左向右
11 && 逻辑与运算符 位运算 自左向右
12 || 逻辑或运算符 位运算 自左向右
13 ? : 条件运算符 三目 自右向左
14 = += -= *=
/= %= << = >>= &= ^= |= 赋值运算符 双目 自右向左
15 , 逗号运算 顺序 自左向右
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就是和加减乘除差不多,优先级高的先算.四则运算这有俩级,c++有十几级,遇到同级从左到右,也有是右结合的,看情况了
1
1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |