码迷,mamicode.com
首页 > 编程语言 > 详细

C/C++运算符及其优先级

时间:2015-07-14 22:37:55      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:c运算符   优先级   

1、自增自减

(1)前置运算:”先变后用“   如++i;

          后置运算:”先用后变“   如i--;

       例如:

int i = 5;
y1 = ++i;   
y2 = i++;

结果:y1 = 6;y2=6;i=7.


(2)前置和后置还有一个区别:前置可以用在等号的两边;而后置只能位于等号的右边。

          这是因为前置返回操作数本身,后置返回的是一个临时变量。

int mian()
{
	int a = 3;
	a += (++a);       //a=7
	a += (a++);       //a=16
	(++a) += (a++);    //a=35
	(a++) += a;   //不正确
}

2、关系与逻辑运算符

(1)关系运算符(四种)和逻辑运算符(三种):返回的是布尔类型的结果

(2)关系的优先级 > 逻辑运算符


3、位运算

   (1) 共六种:&、|、^、~、《(左移)、》(右移)

           异或^:仅当两位不相同时,结果才是1。


   (2)进制转换

[十进制转二进制]

           正十进制转二进制除二取余倒排序。一直除到商等于1或0时为止.

技术分享

所以,52对应的二进制数是:110100。

负整数转换为二进制:取反加一

解释:将该负整数对应的正整数先转换成二进制,然后对其“取补”,再对取补后的结果加1即可。

例如要把-52换算成二进制:

1.先取得52的二进制:00110100

2.对所得到的二进制数取反:11001011

3.将取反后的数值加一即可:11001100

即:(-52)10=(11001100)2


[十进制转十六进制]:除16取余倒排序。

十六进制数的表示:前缀法:0xA1

                                      后缀法:A1H


[二进制和十六进制转十进制]

算法一样。都是  5*16^1+3*16^0 这种形式


    (3)移位运算

规则:移位后,丢弃移出去的数,移后空白位补位规则如下:

int       左移低位补零,右移高位补符号位

unsighed int   低位高位都补零


4、类型转换

(1)赋值转换:将一种类型的值赋给另一种类型的变量。

            int   a = 3.14;

(2)表达式转换

a、整型提升

b、运算时转换

          同一类型的有符号和无符号类型所占的内存空间相同。

(3)显示转换

(4)其他转换


5、运算优先级

(1)括号下标结构体成员优先级最高

(2)单目高于双目;算术双目高于其他双目

(3)算术>移位>关系>位运算>逻辑

(4)三目运算只有一个逗号,低于逻辑

(5)赋值比”,“高

版权声明:本文为博主原创文章,未经博主允许不得转载。

C/C++运算符及其优先级

标签:c运算符   优先级   

原文地址:http://blog.csdn.net/tfygg/article/details/46883433

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!