3、运算符、表达式

1、%求余数

3%2=1  4%2=0  4.0%2=0.0  1%2=1  -1%2=-1  1%-2=1  -1%-2=-1   17.1%4=1.1

分子小于分母,数值为分子,符号按分子走。

1%0->by zero   1.0%0=NAN not a number

 

2、a=2;b=++a;   那么a=3;b=3;

   a=2;b=a++;   那么a=2;   b=3;

  int a=2;

  int b=a+3*a++;  计算机从左往右看,第一个a就是2

  则a=3,b=8 

 

3、比较运算符

  ==相等,要求两边都是基本数据类型

  ===全等,两边类型数字都等才返回true  比较的是栈中的东西,想比较堆中的,用equals

 

4、位运算符

  正数二进制变负数二进制=正数的首位0变成1,其他为是0变成1,1变成0,再在末尾加1,注意进位

  负数二进制变正数二进制= 正数的首位1变成0,末尾减1,其他0变1,1变0

 

a、 ~取反  01001111    ——>10110000         ~0b0011——>-4  因为还得考虑第一位是符号位

        ~0b0000--0011  得 先取反11 111100,可以看出是负数,先把符号定下来,然后数字部分用上面的法则11111100减1,变成11111011,然后再01互换,得00000100,数字部分为4,加上前面的负号为-,所以为-4。(方法:可以让正数先变负,再减1,就可以了)

b、&按位与  2&3=2

c、^按位异或  2^3=1(同1,0为0)

d、|按位或  2|3=3(同0为0)  

 

5、移位运算符

  >>右移:把第一个操作数的二进制码右移指定个位数   64>>2=16  31>>2=7  (正数可以相当于除法)

      -2>>2 0000 0010---1111 1101---1111 1110>>2=1111 1111(负数1补位)---1111 1110---0000 0001,结果为1

  >>左移:同上,全部0补位(乘法)

  >>>无符号右移:他把第一个操作数的二进制码右移指定位数后,左边空出来的位总是以0补充。

 

6、逻辑运算符

  &和&&的区别:前者是与,后者为短路与

  |和||同理

 

7、赋值运算符

  short sum=100;

  sum+=100;//不检查类型匹配,正确,性能高不安全

  sum=sum+100;//检查类型匹配,错误,性能低安全

 

8、局部变量特点是:在使用前必须初始化!!!!

 

9、三目运算符   

  必须赋值给一个变量!

  100>90?"真":"假";  错了

  必须string a=100>90?"真":"假";

posted @ 2018-01-26 22:15  彩电  阅读(151)  评论(0编辑  收藏  举报