Java中的运算符有几类-创新互联

运算符指明对操作数的运算方式。组成表达式的Java操作符有很多种。运算符按照其要求的操作数数目来分,可以有单目运算符、双目运算符和三目运算符,它们分别对应于1个、2个、3个操作数。运算符按其功能来分,有算术运算符、赋值运算符、关系运算符、逻辑运算符、位运算符和其他运算符。

创新互联于2013年成立,是专业互联网技术服务公司,拥有项目成都网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元当雄做网站,已为上家服务,为当雄各地企业和个人服务,联系电话:028-86922220

比较(关系)运算符,逻辑运算符 ,位运算符,三元(三目)运算符

1)比较(关系)运算符

,<,>=,<=,      ==(使用居多)
运算符连接的表达式无论是简单还是复杂,结果最终都是boolean类型
举例:

int a = 10 ;
int b = 20 ;        
boolean result = (a==b) ; //a ≠ b 
System.out.println("输出结果为:"+result);//输出结果为:false

2)逻辑运算符 (开发中使用)
基本逻辑符号
逻辑单与&
逻辑单或|
逻辑异或^
逻辑非!        
扩展的(重点)
逻辑双与&&
逻辑双或||                
举例:

//定义三个变量
int a = 3 ;
int b = 4 ;
int c = 5 ;

//逻辑单与&
System.out.println((a>c)&(b>c)) ;//false & false -->false
System.out.println((a>c)&(b<c)) ;//false & true  -->false
System.out.println((a<c)&(b>c)) ;//true  & false -->false
System.out.println((a<c)&(b<c)) ;//true  & true  -->true

System.out.println("结论:并列关系,有false,则false") ;

//逻辑单或|
System.out.println((a>c)|(b>c)) ;//false | false -->false
System.out.println((a>c)|(b<c)) ;//false | true  -->true
System.out.println((a<c)|(b>c)) ;//true  | false -->true
System.out.println((a<c)|(b<c)) ;//true  | true  -->true

System.out.println("结论:或的关系,有true,则true (有一个满足条件,则成立)") ;

//逻辑异或^
System.out.println((a>c)^(b>c)) ;//false ^ false -->false
System.out.println((a>c)^(b<c)) ;//false ^ true  -->true
System.out.println((a<c)^(b>c)) ;//true  ^ false -->true
System.out.println((a<c)^(b<c)) ;//true  ^ true  -->false

System.out.println("结论:相同则为false,不同则为true") ;

//逻辑非
System.out.println(!(a>c)) ;     //true
System.out.println(!!(a>c)) ;    //false
System.out.println(!!!(a>c)) ;   //true
System.out.println(!!!!(a>c)) ;  //false
System.out.println("结论:非true则false,非false,则true,偶数个非是它本身!") ;

//使用逻辑双与来链接这些表达式
System.out.println((a>c) &&(b>c)) ;//false & false -->false
System.out.println((a>c) &&(b<c)) ;//false & true  -->false
System.out.println((a<c) &&(b>c)) ;//true  & false -->false
System.out.println((a<c) &&(b<c)) ;//true  & true  -->true
System.out.println("结论与逻辑单与&相同") ;

//逻辑单或|
System.out.println((a>c)||(b>c)) ;//false || false -->false
System.out.println((a>c)||(b<c)) ;//false || true  -->true
System.out.println((a<c)||(b>c)) ;//true  || false -->true
System.out.println((a<c)||(b<c)) ;//true  || true  -->true
System.out.println("结论与逻辑单或|相同") ;

//定义两个变量
int x = 3 ;
int y = 4 ;
//boolean flag = ((++x == 3) & (--y ==4)) ; //true && true -->true
//boolean flag = ((x++ == 3) & (y-- ==4)) ; //true && true -->true
//boolean flag = ((x++ == 3) & (++y ==4)) ; //true && true -->true
//boolean flag = ((x++==3 ) && (y-- ==4) ); //true && true -->true
boolean flag = ((++x==3 ) && (y-- ==4) );   //false 右边不执行

System.out.println("结论:当符号为&& ,左边的表达式位false,右边不执行(短路效果)") ;

int m = 4 ;
int n = 5 ;
//boolean flag2 = ((m++ == 4) | (--n == 5)) ; // true |  false
//boolean flag2 = ((++m == 4) || (--n == 5)) ;//false || false
boolean flag2 = ((m++ == 4) || (--n == 5)) ;//true
System.out.println("结论:当符号为|| ,左边表达式为true,右边不执行(短路效果)") ;

3)位运算符:(了解)
位与&,位或|,位异或^, ~数据(反码)
<<(左移动),>> 右移,>>> 无符号右移  (了解)
举例:

   位运算符:  位与&  位或|   位异或^   ~数据(反码)

    位与& 有0则0
    3&4
    00000000 00000000 00000000 00000011
&   00000000 00000000 00000000 00000100
-------------------------------------------
    00000000 00000000 00000000 00000000
    结果:0
    结论:位与运算符的特点:有0,则0   

    位或| 有1则1
    3|4
    00000000 00000000 00000000 00000011
|   00000000 00000000 00000000 00000100
------------------------------------------
    00000000 00000000 00000000 00000111
    结果为:7
    位或|运算符的特点:有1,则1 

    位异或^ 相同则0 不同则1
    3^4
    00000000 00000000 00000000 00000011
^   00000000 00000000 00000000 00000100
------------------------------------------  
    00000000 00000000 00000000 00000111 

    结果为:7   
    位异或^运算符的特点:相同则为0,不同则为1

反码5 求反码(对当前数据的二进制数据全部按位取反,0变1,1变0)  
    ~5 
    00000000 00000000 00000000 0000101(原码,反码,补码)
    11111111 11111111 11111111 1111010(全部按位取反)(这是补码)
    11111111 11111111 11111111 1111001(反码)
    10000000 00000000 00000000 0000110(原码)
    结果为:-6

反码-3  
    ~-3
    10000000 00000000 00000000 000000011(原码)
    11111111 11111111 11111111 111111100(反码)
    11111111 11111111 11111111 111111101(补码)
    00000000 00000000 00000000 000000010(全部取反)
    结果为:2
    结论:求反码(对当前数据的二进制数据全部按位取反,0变1,1变0)   

左移: <<
    3<<3
    00000000    00000000    00000000    00000011
    00000000    00000000    00000000    00011000(左移三位)
                                           16+8=24
    ------------------------------------------------
    -3<<3
    10000000    00000000    00000000    00000011
    11111111    11111111    11111111    11111100(反码)
    11111111    11111111    11111111    11111101(补码)    
    11111111    11111111    11111111    11101000(左移三位)(补码)
    11111111    11111111    11111111    11100111(反码)
    10000000    00000000    00000000    00011000(原码)
    结果:                                 -24

右移: >>
    3>>3
    00000000    00000000    00000000    00000011
    00000000    00000000    00000000    00000000(右移三位)

无符号右移>>>
    20>>>2
    00000000    00000000    00000000    00010100
    00000000    00000000    00000000    00000101(无符号右移两位,最高位都补0)
    结果:                                     5

4)三元(三目)运算符:  

固定格式:(表达式)?(表达式1):(表达式2)
执行流程:   判断表达式的结果,
                结果为true->执行表达式1的结果,
                结果为false->执行表达式2的结果。
int a = 10;
int b = 20;
boolean res = (a>b)?true:false;//结果是:false;

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

网站名称:Java中的运算符有几类-创新互联
浏览路径:https://www.cdcxhl.com/article10/cddjgo.html

成都网站建设公司_创新互联,为您提供网站收录品牌网站建设建站公司网站导航商城网站品牌网站设计

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设