黑马程序员_Java基础[3]_运算符

时间:2023-02-19 13:32:48

---------- android培训 java培训、期待与您交流! ---------- 



1,运算符
     算术运算符,即(+,-,*,/,%,++,--,+)
     赋值运算符,即(=,+=,-+,*=,/=,%=)
     比较运算符,即(>,<,>=,<=,==,!=   insanceof  )
     逻辑运算符,即(&,|,^,&&,||,!)   
     三元运算符,即(z?y:z)              条件?表达式1:表达式2
注意事项:
1.11  int j,i=m=3;     
         j= i++,n=++m,   
        结果为:j=3,i=4,n=4,m=4,++在后时,是先把i赋给j,然后在+1,而++在前,是先m+1再赋值给n。
1.12                 负数%负数=负数     
                        负数%正数=负数
                        正数%负数=正数
1.13【&】一个false,都false,
       【|】只要一个为true,都是true,两边都是false都是false,
       【^】,异或,和【|】只有一点不一样就是两边true则为false,就是:两边相同为false,两边不同为true;
       【&&】,并且
       【||】,或者
       【!】,非false      ,   !!真true;
1.13位运算
~取反,上一笔记提及过的:6的二进制【取反+1】
               000...000110 =6  取反:
               111...111001 如何计算这个取反后的值?【反思维,-1取反】         最后结论这个就是-7
               000...000001    -1
               111...111000   得出结果下面取反
               000...000111    111就是7  价格-号,就是-7.
               【任何整数取反就是+1后舔上-号,~7=-8,~8=-9,~10=-11、、、、、】
&按位,上面提到的只要一个false,都false,小提示,0为false,1为true所以6&3,转换为二进制
             110
             011>>计算
             010>>1,0,false. 1,1,ture,0,1,false最后结果就为010,转换为十进制就是2=6&3
             计算9&5>>1001&0101=1
|按位或,一个true,都true,两边false都false那么6|3就是二进制111就是6|3=7
^按位异或,两边相同为false,两边不同为true;那么6^3就是101就是6^3=5
                  计算:6^3^3等于多少呢。用上面的二进制继续计算得出6^3^3=6
                   用一个数^同一个数2次,结果还是那个数。
               (扩展一下就是:简单的密码加密啊,再也不担心一般人看到自己备注的各种帐号密码了)
<<左移运算符,
>>右移运算符,
                  总结:右移(左移)一位相当于除以2(乘以2)(移动1位就是和2进行计算,2位就是2个2)
                  int a=3*2*2;
                  int b=3<<2;//相当于3*2*2
                  int c=12/2/2;
                  int d=12>>2;    相当于12/2/2  
                 在进行二进制计算移动时补位记住:前面是0补0,是1补1(1开头为负数)
>>>无符号运算符
1.14 赋值运算符譬如:a+=b 就是a=a+b  。  
1.15 三元运算符,即(z?y:z)    条件?表达式1:表达式2   (true=表达式1,false=表达式2)
int x=3,y;
y=(x>1)?100:200;如果条件为true,为值100,false为值200
(一元运算:a++,a--             二元运算:1+2,3*8)


小练习:
1.最有效的方式计算出:2*8=  2<<3.   3*9=      3<<3+3


2.对2个整数变量进行互换:

             可以有三种方式:
              2.1按照以前的知识,定义一个中间变量temp进行转换。
             2.2用赋值运算符解决问题如:
                     int a=4,b=9;
                     a+=b;   就是   a=a+b=13
                     b=a-b;  就是   b=13-9=4;                    
                     a=a-b;  就是   a=13-4=9;     
             2.3用位运算^计算:
                     a=a^b;  就是  c
                     b=a^b;  就是  b=c^b        b=a^b^b=4
                     a=a^b;  就是  a=c^c^b=b=9


---------- android培训、 java培训、期待与您交流!----------
黑马官网: http://edu.csdn.net/heima