运算符
运算符
能完成一定功能的符号,如‘+’‘-’7.2 运算符优先级:两个不同的运算符,先算谁的问题
结合性:两个相同的运算符,先算谁的问题 赋值运算只能是右结合性的运算。
算术运算符
**自增自减运算符 ** 后置规则后算;前置规则先算;
** 逻辑值 ** 只有真和假两个结果
sizeof :是一个运算符,不是一个函数。求变量、数据类型、表达式的结果所占字节数。
//表达式运算结果所占字节数
NSLog(@"%lu",sizeof(3+4.1*0.5));
x= 1;
NSLog(@"%lu",sizeof(x = 1.0)); //表达式不会被运算
0C (共有6种)
二进制负数,用补码表示
1、补码:反码+1
6
00000110 原码
11111001 反码
11111010 补码
2、反码的计算公式:-1-(5)//-1减去补码
3、左移,系统自动补0
4、右移,系统自动补原来最高位的数,不一定是0
00000001 1
11111110
11111111 -1
<< 1
11111110 -2
11111101
00000010 2
1
11111111 -1
5、^:异或运算符,相同为0,不同为1。
6、三目运算符:a>b?a:b —- 判断a是否大于b,是则取a的值(判断为真)否则取b的值(判断为假)
短路运算:是编译器对源程序的一种优化,即将不必要的代码删除的操作,
&&左边为假则右边不执行
||左边为假再执行右边
NSLog(@"%d",-5%-3); //余数的符号仅仅与被除数相同,与除数无关。
NSLog(@"%d",5.3%3); //浮点数不能求余数
**&: **相同为1;不同为0
**^: **不同为1,相同为0
&& 和 || 都是左边为真则右边不执行
成功的三大原则:
1、坚持
2、不要脸
3、坚持不要脸