负号的优先级比&来的高
来源:互联网 发布:鲱鱼罐头淘宝评价 编辑:程序博客网 时间:2024/06/09 15:33
编程之美:求二进制数中的1的个数:第二个补充习题
一开始代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
int m,n;
int flag=0;
printf("input m and n:");
scanf("%d%d",&m,&n);
while(m||n)
{
flag+=abs(m&1-n&1);
m>>=1;
n>>=1;
}
printf("flag=%d/n",flag);
}
运行以后,发现结果不对,用printf输出结果,来进行调试。
最后原因知道了,原来负号的优先级比&来的大,然后搞定代码:
#include <stdio.h>
#include <math.h>
int main()
{
int m,n;
int flag=0;
printf("input m and n:");
scanf("%d%d",&m,&n);
while(m||n)
{
flag+=abs((m&1)-(n&1));//负号的优先级比&要来的高
m>>=1;
n>>=1;
}
printf("flag=%d/n",flag);
}
网上摘录了C语言操作符的优先级:
优先级
运算符
名称或含义
使用形式
结合方向
说明
1
[]
数组下标
数组名[常量表达式]
左到右
()
圆括号
(表达式)/函数名(形参表)
.
成员选择(对象)
对象.成员名
->
成员选择(指针)
对象指针->成员名
2
-
负号运算符
-表达式
右到左
单目运算符
(类型)
强制类型转换
(数据类型)表达式
++
自增运算符
++变量名/变量名++
单目运算符
--
自减运算符
--变量名/变量名--
单目运算符
*
取值运算符
*指针变量
单目运算符
&
取地址运算符
&变量名
单目运算符
!
逻辑非运算符
!表达式
单目运算符
~
按位取反运算符
~表达式
单目运算符
sizeof
长度运算符
sizeof(表达式)
3
/
除
表达式/表达式
左到右
双目运算符
*
乘
表达式*表达式
双目运算符
%
余数(取模)
整型表达式/整型表达式
双目运算符
4
+
加
表达式+表达式
左到右
双目运算符
-
减
表达式-表达式
双目运算符
5
<<
左移
变量<<表达式
左到右
双目运算符
>>
右移
变量>>表达式
双目运算符
6
>
大于
表达式>表达式
左到右
双目运算符
>=
大于等于
表达式>=表达式
双目运算符
<
小于
表达式<表达式
双目运算符
<=
小于等于
表达式<=表达式
双目运算符
7
==
等于
表达式==表达式
左到右
双目运算符
!=
不等于
表达式!= 表达式
双目运算符
8
&
按位与
表达式&表达式
左到右
双目运算符
9
^
按位异或
表达式^表达式
左到右
双目运算符
10
|
按位或
表达式|表达式
左到右
双目运算符
11
&&
逻辑与
表达式&&表达式
左到右
双目运算符
12
||
逻辑或
表达式||表达式
左到右
双目运算符
13
?:
条件运算符
表达式1? 表达式2: 表达式3
右到左
三目运算符
14
=
赋值运算符
变量=表达式
右到左
/=
除后赋值
变量/=表达式
*=
乘后赋值
变量*=表达式
%=
取模后赋值
变量%=表达式
+=
加后赋值
变量+=表达式
-=
减后赋值
变量-=表达式
<<=
左移后赋值
变量<<=表达式
>>=
右移后赋值
变量>>=表达式
&=
按位与后赋值
变量&=表达式
^=
按位异或后赋值
变量^=表达式
|=
按位或后赋值
变量|=表达式
15
,
逗号运算符
表达式,表达式,…
左到右
从左向右顺序运算
说明:
- 负号的优先级比&来的高
- == 的优先级比 & 高
- sql中and的优先级比or高
- 解决内联样式比类选择器优先级高的问题
- 把SAP里的负号放到前面来的函数
- 同样来借款,为什么你的利率比别人高?
- 计算器负号的处理
- 嵌入式学习第四天(强制类型转换,运算符的优先级,为什么后置 I++的优先级比 前置++I高)
- 负数的负号前置显示
- ABAP负号提前的方法
- ABAP负号提前的测试
- ABAP负号提前的测试
- 外语好的人,工资就是比你高,不服来辩
- 优先级调度:优先级高的任务先执行。
- SysTick的优先级是高还是低
- SysTick的优先级是高还是低
- 优先级高的线程并不一定先执行
- SAP中负号前置的函数:CLOI_PUT_SIGN_IN_FRONT
- Windows异步I/O读文件的缓存限制?
- Firefox扩展开发--详细入门教程
- Joomla模块开发
- 一次C语言培训的试讲
- Linux系统编程学习笔记(七)内存管理
- 负号的优先级比&来的高
- Linux驱动程序设计之二---Linux字符驱动程序(上)
- 手把手教你搭建jME2(jMonkeyEngine2)环境【有图有真相】
- 如何使用PPT图像电子相册,打造一场专业的图片抽奖活动?
- 2010年11月8日,早会资料(日本的文化节)。
- 演唱会&加班
- 历尽千辛万苦,终于让我的ARM跑起了跑马灯
- 又见生日
- UNIX编程环境(The UNIX Programming Environment) 备忘录(七)