C/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时为止.
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
所以。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++运算符及其优先级的更多相关文章
- javascript中运算符的优先级
运算符优先级 JavaScript中的运算符优先级是一套规则.该规则在计算表达式时控制运算符执行的顺序.具有较高优先级的运算符先于较低优先级的运算符执行.例如,乘法的执行先于加法. 下表按从最高到最低 ...
- java中运算符的优先级
所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最低.譬如,x = 7 + 3 * 2 得到的结果是 13 &quo ...
- C语言运算符和优先级
关于C语言运算符和优先级,经整理众多博客资料汇入自己的实战,如下: a.算术运算 C语言一共有34种运算符,包括常见的加减乘除运算. 1) 加法:+ 还可以表 ...
- C语言语法之运算符及优先级
注:该内容整理自以下链接. http://blog.csdn.net/huangblog/article/details/8271791 表:C语言运算符及优先级 优先级 运算符 名称或含义 使用形式 ...
- Java运算符的优先级(从高到低)
运算符的优先级(从高到低) 优先级 描述 运算符 1 括号 ().[] 2 正负号 +.- 3 自增自减,非 ++.--.! 4 乘除,取余 *./.% 5 加减 +.- 6 移位运算 << ...
- javascript运算符的优先级
最基木的运算符优先级就是所谓的“先乘除,后加减”.对于优先顺序处于同一层次上的运算符,按照从左到右出现的顺序计算.下面给出javascript定义的所有运算符的优先级.运算符 优先顺序成员选择.括号. ...
- [转]说说C语言运算符的“优先级”与“结合性”
补充自己的一点理解: 1.关于++i 与 i++的区别. ++i 和 i++如果是单独使用的语句,即二者后面均加上分号,或者其他单独使用的语句,没有任何区别.例如: for(i=0;i<100; ...
- 慕课网-安卓工程师初养成-3-9 Java中运算符的优先级
来源 http://www.imooc.com/code/1315 所谓优先级,就是在表达式中的运算顺序.Java 中常用的运算符的优先级如下表所示: 级别为 1 的优先级最高,级别 11 的优先级最 ...
- swift:高级运算符(位运算符、溢出运算符、优先级和结合性、运算符重载函数)
swift:高级运算符 http://www.cocoachina.com/ios/20140612/8794.html 除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和 ...
- python运算符的优先级
运算符优先级 如果你有一个如2 + 3 * 4那样的表达式,是先做加法呢,还是先做乘法?我们的中学数学告诉我们应当先做乘法——这意味着乘法运算符的优先级高于加法运算符. 下面这个表给出Python的运 ...
随机推荐
- matplotlib极坐标系应用之雷达图
#!/usr/bin/env python3 #-*- coding:utf-8 -*- ############################ #File Name: test.py #Autho ...
- ACM_数论_阶乘N!的末尾有几个零 和 末尾有多少个 1 nyoj 954
原文地址 首先阶乘的一个常识要知道就是25!的末尾6位全是0: 前言: <编程之美>这本书,爱不释手! 问题描述: 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N!= ...
- Linux下出现Read-only file system的解决办法
正常运行中的网站,忽然间出现session目录不可写,连接服务器一看,任何关于写硬盘的命令都不能用,提示Read-only file system,使用一条命令即可搞定此问题: mount -o re ...
- DataBinding 笔记
DataBinding 笔记 android DataBinding notes 那些年踩过的坑 问题 那些年踩过的坑 非 public 类型的变量,getter 方法必须有,没有就会报错:Could ...
- linux2.4中netfilter_nat_alg机制分析--以FTP流程为例,分析NAT和ALG
以FTP流程为例,分析NAT和ALG 网络环境: ×5+6=1286) 创建×5+6=1286),更新skb的应用层信息(这里应用层信息还是×5+6=1286) 创建×5+6=1286) 创建×5+6 ...
- Handler vs Timer,究竟该用哪个?
Handler vs Timer 在我们Android开发过程中,经常需要执行一些短周期的定时任务,这时候有两个选择Timer或者Handler.然而个人认为:Handler在多个方面比Timer更为 ...
- Python 使用标准库根据进程名获取进程PID
应用场景 在进行 Linux 运维的环境中,我们经常会遇到维护同一台服务器上的多个程序,涉及到程序的启动.关闭和重启操作. 通常这些程序之间存在着相互依存的关系需要进行依次的启动关闭操作. 下面介绍几 ...
- 使用scp命令传输文件
1. 从远端复制文件到本地: sudo scp root@192.168.0.1:remote_path/remote_file . 2. 从本地复制文件到远端: sudo scp local_fil ...
- String类和StringBuffer类
位于java.lang包中,这个包中的类使用时不用导入 String类一旦初始化就不可以改变,而stringbuffer则可以.它用于封装内容可变的字符串.它可以使用tostring()转换成stri ...
- C#实现反射调用动态加载的DLL文件中的方法
反射的作用:1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型 2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射.3. ...