• java运算符


    ♦算数运算符。如:加(+)、减(-)、乘(*)、除(/)。

    ♦比较运算符。如:等于(==)、大于(>)、小于(<)、大于或等于(>=)、小于或等于(<=)。

    ♦布尔运算符。如:短路与(&&)、短路或(||)、非(!)、逻辑与(&)、逻辑或(|)、异或(^)。

    ♦赋值运算符。如:等于(=)、加等(+=)、减等(=)、乘等(*=)、除等(/=)、与等(&=)、或等(|=)、异或等(^=)。

    ♦位运算符。如:与(&)、或(|)、异或(^)、取反(~)、左移(<<)、右移(>>,>>>)。

    //5换算成二进制: 0000 0000 0000 0000 0000 0000 0000 0101
    //5右移3位后结果为0,0的二进制为: 0000 0000 0000 0000 0000 0000 0000 0000 // (用0进行补位)
    //-5换算成二进制: 1111 1111 1111 1111 1111 1111 1111 1011
    //-5右移3位后结果为-1,-1的二进制为: 1111 1111 1111 1111 1111 1111 1111 1111 // (用1进行补位)
    //-5无符号右移3位后的结果 536870911 换算成二进制: 0001 1111 1111 1111 1111 1111 1111 1111 // (用0进行补位)
    //通过其结果转换成二进制后,我们可以发现,正数右移,高位用0补,负数右移,高位用1补,当负数使用无符号右移时,用0进行部位(自然而然的,就由负数变成了正数了)

    ♦其他运算符。如:三目运算符(?:)、加加(++)、减减(--)。

      1 package com.jdk7.chapter1;
      2 
      3 public class Operator {
      4     /**
      5      * 算数运算符
      6      */
      7     public void computerOperator(){
      8         int a = 8;
      9         int b = 5;
     10         int result = a/b;        //除数和被除数都为int,运算的结果为int类型
     11         float f = a/b;            //除数和被除数都为int,运算的结果为int类型,将int类型结果转换为float类型
     12         double d = a/b;            //除数和被除数都为int,运算的结果为int类型,将int类型结果转换为double类型
     13         float f1 = a/(b*1.0f);    //被除数为float类型,运算结果为float类型
     14         double d1 = a/(b*1.0d);    //被除数为double类型,运算结果为double类型
     15         System.out.println("result = "+result+"; f = "+f+"; d = "+d+"; f1 = "+f1+"; d1 = "+d1);
     16     }
     17 /*
     18 执行结果:
     19 result = 1; f = 1.0; d = 1.0; f1 = 1.6; d1 = 1.6
     20 */
     21     /**
     22      * 比较运算符
     23      */
     24     public void compareOperator(){
     25         int a = 8;
     26         int b = 5;
     27         System.out.println("(a==b) = "+(a==b));
     28         System.out.println("(a>b) = "+(a>b));
     29         System.out.println("(a<b) = "+(a<b));
     30         System.out.println("(a>=b) = "+(a>=b));
     31         System.out.println("(a<=b) = "+(a<=b));
     32         System.out.println("(a!=b) = "+(a!=b));
     33     }
     34 /*
     35 执行结果:
     36 a、b、c至少一个为false
     37 (a==b) = false
     38 (a>b) = true
     39 (a<b) = false
     40 (a>=b) = true
     41 (a<=b) = false
     42 (a!=b) = true
     43 */
     44     /**
     45      * 布尔运算符
     46      */
     47     public void booleanOperator(){
     48         boolean a = true;
     49         boolean b = true;
     50         boolean c = false;
     51         if(a && b && c){
     52             System.out.println("a、b、c都为true");
     53         }else{
     54             System.out.println("a、b、c至少一个为false");
     55         }
     56         int i = 2;
     57         int j = 0;
     58         //从左到右,只要有一个为false则&&后面的都不会执行,(j = i) == 2不会执行
     59         if(c && (j = i) == 2){
     60             System.out.println("j = "+j);
     61         }else{
     62             System.out.println("j = "+j);
     63         }
     64         //从左到右,每一个都会执行,(j = i) == 2会执行
     65         if(c & (j = i) == 2){
     66             System.out.println("j = "+j);
     67         }else{
     68             System.out.println("j = "+j);
     69         }
     70         
     71         if(a || b ||c){
     72             System.out.println("a、b、c至少一个为true");
     73         }else{
     74             System.out.println("a、b、c都为false");
     75         }
     76         if(a ^ b){
     77             System.out.println("a、b值不同");
     78         }else{
     79             System.out.println("a、b值相同");
     80         }
     81         if(a & b){
     82             System.out.println("a、b都为true");
     83         }else{
     84             System.out.println("a、b至少一个为false,a、b都有调用执行");
     85         }
     86         if(a | b){
     87             System.out.println("a、b至少一个为true,a、b都有调用执行");
     88         }else{
     89             System.out.println("a、b都为false");
     90         }
     91         if(!a){
     92             System.out.println("(!a) = "+(!a));
     93         }
     94     }
     95 /*
     96 执行结果:
     97 a、b、c至少一个为false
     98 j = 0
     99 j = 2
    100 a、b、c至少一个为true
    101 a、b值相同
    102 a、b都为true
    103 a、b至少一个为true,a、b都有调用执行
    104 */
    105     /**
    106      * 赋值运算
    107      */
    108     public void fuZhiOperator(){
    109         int i = 4;
    110         System.out.println("(i+=2) = "+(i+=2));
    111         System.out.println("(i-=2) = "+(i-=2));
    112         System.out.println("(i*=2) = "+(i*=2));
    113         System.out.println("(i/=2) = "+(i/=2));
    114         System.out.println("(i&=2) = "+(i&=2));
    115         System.out.println("(i|=2) = "+(i|=2));
    116         System.out.println("(i^=2) = "+(i^=2));
    117     }
    118 /*
    119 执行结果:
    120 (i+=2) = 6
    121 (i-=2) = 4
    122 (i*=2) = 8
    123 (i/=2) = 4
    124 (i&=2) = 0
    125 (i|=2) = 2
    126 (i^=2) = 0
    127 */
    128     /**
    129      * 位运算
    130      */
    131     public void byteOperator(){
    132         //5换算成二进制: 0000 0000 0000 0000 0000 0000 0000 0101
    133         //5右移3位后结果为0,0的二进制为: 0000 0000 0000 0000 0000 0000 0000 0000        // (用0进行补位)
    134         //-5换算成二进制: 1111 1111 1111 1111 1111 1111 1111 1011
    135         //-5右移3位后结果为-1,-1的二进制为: 1111 1111 1111 1111 1111 1111 1111 1111   // (用1进行补位)
    136         //-5无符号右移3位后的结果 536870911 换算成二进制: 0001 1111 1111 1111 1111 1111 1111 1111   // (用0进行补位)
    137         //通过其结果转换成二进制后,我们可以发现,正数右移,高位用0补,负数右移,高位用1补,当负数使用无符号右移时,用0进行部位(自然而然的,就由负数变成了正数了)
    138         
    139         int a = 8;        //0000 0000 0000 0000 0000 0000 0000 1000
    140         int b = 3;        //0000 0000 0000 0000 0000 0000 0000 0011
    141         int c = -3;        //0000 0011->1111 1100->1111 1111 1111 1111 1111 1111 1111 1101
    142         System.out.println("(a & b) = "+(a & b));    //0000 0000
    143         System.out.println("(a | b) = "+(a | b));    //0000 1011
    144         System.out.println("(a ^ b) = "+(a ^ b));    //0000 1011
    145         System.out.println("(a << 2) = "+(a << 2));    //0010 0000
    146         System.out.println("(a >> 2) = "+(a >> 2));    //0000 0010
    147         System.out.println("(a >>>  2) = "+(a >>> 2));    //0000 0000 0000 0000 0000 0000 0000 0010
    148         System.out.println("(c >>>  2) = "+(c >> 2));    //1111 1111 1111 1111 1111 1111 1111 1111->在计算机中表现为-1
    149         System.out.println("(c >>>  2) = "+(c >>> 2));    //0011 1111 1111 1111 1111 1111 1111 1111
    150         System.out.println("(~a) = "+(~a));        //1111 1111 1111 1111 1111 1111 1111 0111->-7在计算机中表现为补码-9
    151     }
    152 
    153 /*
    154 执行结果:
    155 (a & b) = 0
    156 (a | b) = 11
    157 (a ^ b) = 11
    158 (a << 2) = 32
    159 (a >> 2) = 2
    160 (a >>>  2) = 2
    161 (c >>>  2) = -1
    162 (c >>>  2) = 1073741823
    163 (~a) = -9
    164 */
    165     public static void main(String[] args) {
    166         Operator operator = new Operator();
    167 //        operator.computerOperator();
    168 //        operator.compareOperator();
    169 //        operator.booleanOperator();
    170 //        operator.fuZhiOperator();
    171         operator.byteOperator();
    172         
    173     }
    174 
    175 }
  • 相关阅读:
    HTML文档类型DTD与浏览器怪异模式
    css控制非固定文本自动换行
    CSS圆角兼容IE6
    css命名规则
    一个程序员的世界(三) 全:(原名:一个程序员的世界观)
    Apache Ignite 学习笔记(6): Ignite中Entry Processor使用
    Apache Ignite 学习笔记(五): Primary和backup数据同步模式和处理分片丢失的策略
    Apache Ignite 学习笔记(四): Ignite缓存冗余备份策略
    Apache Ignite 学习笔记(三): Ignite Server和Client节点介绍
    Apache Ignite 学习笔记(二): Ignite Java Thin Client
  • 原文地址:https://www.cnblogs.com/celine/p/8228968.html
Copyright © 2020-2023  润新知