您的位置:首页 > 职场人生

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

2014-04-28 23:09 781 查看
----------
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐