c语言中的符号优先级问题
来源:互联网 发布:mac系统c语言编程软件 编辑:程序博客网 时间:2024/06/06 00:49
大部分运算符都有优先级的先后问题 据一些例子
1> if(flags & FLAGS) //其中flags 与 FLAGS 都是变量,想用来判断flags 与 FLAGS 在二进制上同位是否有同1,也就是存在相同二进制位上的指数是否相同且为1,对于电脑来说自然而然地认为if(flags & FLAGS != 0)为真,但是当运行时,因为运算符优先级的问题,电脑认成if(flags & (FALGS != 0)),这就造成了歧义,故应该改写为if((flags & FLAGS) != 0) 即可满足要求。 2> 如果有 high 和 low 两个整形变量的值介于 0 到 15 之间,如果整形变量r的低四位与low一致,高四位与high一致,则r可表示为r = high << 4 + low;但因为优先级问题,电脑将自动识别为 r = high << (4 + low) ,这样就产生了歧义。 这里有两种方法可以改正 a> r = (high << 4) + low; //加括号 b> r = high << 4 | low; //将原来的加号改为按位逻辑或
对于运算符的问题上还有很多的问题,一方面我们可以记住这些运算符的优先级,当然这是比较难得,最好用的方法就是加括号,保证想要优先进行的运算能够顺利先一步运算。这是需要注意的一些方面
0 0
- c语言中的符号优先级问题
- c语言中的符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- C语言符号优先级
- linux下防火墙 开启某个端口
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- 随机森林-思想
- 页面浏览本地文件--type=file
- 《Python科学计算》Part1 WinPython之mayavi画图-显式函数与隐式函数
- c语言中的符号优先级问题
- eclipse 3.7 安装 svn插件 subclipse
- 关于spring的配置文件的注入方式
- 各种启动过程 通过Launcher启动MainActivity的过程
- 在java中如何调用linux的ctrl+c指令?
- 【Hadoop】ZooKeeper官方文档翻译——ZooKeeper Overview 3.4.6
- java 解析 properties-使用 ResourceBundle
- QQ用户信息管理系统 大结局
- 自学--数据库笔记--第四篇--多表连接查询