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

若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个回答  2013-10-08
附录C C语言运算符优先级和结合性
优先级 运算符 含义 运算类型 结合性
1 ( )
[ ]
->
, 圆括号
下标运算符
指向结构体成员运算符
结构体成员运算符 单目 自左向右
2 !
~
++ --
(类型关键字)
+ -
*
&
sizeof 逻辑非运算符
按位取反运算符
自增、自尖运算符
强制类型转换
正、负号运算符
指针运算符
地址运算符
长度运算符 单目 自右向左
3 * / % 乘、除、求余运算符 双目 自左向右
4 + - 加、减运算符 双目 自左向右
5 <<
>> 左移运算符
右移运算符 双目 自左向右
6 < <= > >= 小于、大于、小于等于、大于等于 关系 自左向右
7 = = != 等于、不等于 关系 自左向右
8 & 按位与运算符 位运算 自左向右
9 ^ 按位异或运算符 位运算 自左向右
10 | 按位或运算符 位运算 自左向右
11 && 逻辑与运算符 位运算 自左向右
12 || 逻辑或运算符 位运算 自左向右
13 ? : 条件运算符 三目 自右向左
14 = += -= *=
/= %= << = >>= &= ^= |= 赋值运算符 双目 自右向左
15 , 逗号运算 顺序 自左向右本回答被网友采纳
第2个回答  2013-10-08
就是和加减乘除差不多,优先级高的先算.四则运算这有俩级,c++有十几级,遇到同级从左到右,也有是右结合的,看情况了
1
第3个回答  2013-10-08
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

本回答被提问者采纳

在C++的语言中, 那个优先级是怎么样的?
附录C C语言运算符优先级和结合性 优先级运算符含义运算类型结合性 1( )[ ]-> ,圆括号 下标运算符 指向结构体成员运算符 结构体成员运算符单目自左向右 2!~++ -- (类型关键字)+ - & sizeof逻辑非运算符 按位取反运算符 自增、自尖运算符 强制类型转换 正、负号运算符 指针运算符 ...

C\/ C++优先级怎么算?
c语言运算符优先级从高到低的顺序依次如下:优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。不同类型的运算符之间也有相应的优先级...

c++中位与运算符优先级是什么?
你好,在c语言中,运算符的优先等级是+,-,*,\/优先于位与运算符的,位与运算符就是& 其他优先等级这里部分写出:1、x.y, f(x),a[x],x++,new,typeof...2.一元:(+,-,!,~,++,--,)3.*,\/,4,+,- 5,<> 6,==,!= 7,& 8,^ 9,| 10,&& 11.|| 12.?:13. =,+=,&...

c++中的运算符优先级是什么?
= 1 按照优先级,先加减运算,后逻辑运算 而逻辑运算的几个操作数都是非0的,可以认为是1 因此最终结果为逻辑1

c++各类运算优先级
九、优先级和结合性 从上面的逗号运算符那个例子可以看出,这些运算符计算时都有一定的顺序,就好象先要算乘除后算加减一样。优先级和结合性是运算符两个重要的特性,结合性又称为计算顺序,它决定组成表达式的各个部分是否参与计算以及什么时候计算。 下面是C语言中所使用的运算符的优先级和结合性: 优先级 运算符 ...

C++与或非的符号|和||是什么意思?
15级优先级,左结合: , 逗号运算符 C++是在C语言的基础上开发的一种通用编程语言,应用广泛。C++支持多种编程范式——面向对象编程、泛型编程和过程化编程。最新正式标准C++14于2014年8月18日公布。其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言...

C++|运算符优先级的合理性理解
C语言设计哲学追求对象声明与使用形式的统一,以增强代码的可读性。然而,这种设计在处理运算符优先级时带来了一些复杂性。C语言中有18级或更多运算符优先级(具体数量取决于计算方式),被认为是设计不当的复杂之处。首先,括号运算符具有仅次于某些特殊运算符的第2高优先级。括号包括用于改变优先级的小...

C++的基本运算以及运算符的优先级和结合性
==同真伪真,其余都是假==。逻辑或示例:逻辑==或==运算符总结: ==同假为假,其余为真== 以上内容,为C\/C++里面的基本运算示例和重点,以及优先级和结合性。第一个表格怎么发都是错版,第一行是优先级第二行是运算符,大家可以自己记笔记的时候重新调整下格式。

c++中“::”和“->”
“::”称为分辩符,指明了成员函数所属的类 如:M::f(s)就表示f(s)是类M的成员函数 “->”在C++中优先级最高 如:若a为一指向对象的指针,a->f(s)就表示调用a所指的对象中的成员函数 f(s)

C语言中运算符优先级排序
C语言中运算符优先级排序如下:分为优先级15级:1、圆括号【()】、下标运算符【[]】、分量运算符的指向结构体成员运算符【->】、结构体成员运算符【.】;2、逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++】【 --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算...

相似回答