zoukankan      html  css  js  c++  java
  • 运算符

    算术运算符:

    +,-,*,/,%,++,--

    ++,--运算符的使用:

    单独使用:
    放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
    参与运算使用:
    放在操作数的前面,先自增或者自减,然后再参与运算。
    放在操作数的后面,先参与运算,再自增或者自减。

    赋值运算符:

    =,+=,-=

    +=,-=这类的运算符,隐含了一个强制类型的转换。

    比较运算符:

    ==,!=,>,>=,<,<=

    特点:无论你的操作是简单还是复杂,结果是boolean类型。

    逻辑运算符:

    &,|,^,!

    特点:逻辑运算符一般用于连接boolean类型的表达式或者值。

    总结:

    &逻辑与:有false则false。

    |逻辑或:有true则true。

    ^逻辑异或:相同为false,不同为true。

    !逻辑非:非false则true,非true则false。

    特点:偶数个不改变本身。

    &&和||  &和|

    最终结果一样

    &&遇到false就不向右继续了,

    位运算符:

    &,|,^,~

    注意:要做位运算,系统是将数据转换为二进制进行运算的。

    这里以3和4为例:

    System.out.println(3 & 4);
    System.out.println(3 | 4);
    System.out.println(3 ^ 4);
    System.out.println(~3);

    输出:

    &位与运算:有0则0。
            00000000 00000000 00000000 00000011
           &00000000 00000000 00000000 00000100
            -----------------------------------
            00000000 00000000 00000000 00000000
            结果是:0
            
        |位或运算:有1则1。
            00000000 00000000 00000000 00000011
           |00000000 00000000 00000000 00000100
            -----------------------------------
            00000000 00000000 00000000 00000111
            结果是:7
            
        ^位异或运算:相同则0,不同则1。
            00000000 00000000 00000000 00000011
           &00000000 00000000 00000000 00000100
            -----------------------------------
            00000000 00000000 00000000 00000111
            结果是:7
            
        ~按位取反运算符:0变1,1变0
            00000000 00000000 00000000 00000011
           ~11111111 11111111 11111111 11111100 (补码)
           
           补码:11111111 11111111 11111111 11111100
           反码:11111111 11111111 11111111 11111011
           原码:10000000 00000000 00000000 00000100
            结果是:-4

    异或的小特点:

    ^的特点:一个数据对另一个数据位异或两次,该数本身不变。

    比如: a^a^b 的结果还是b

    <<,>>,>>>

    <<:左移 左边最高位丢弃,右边补齐0
    >>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
    >>>:无符号右移 无论最高位是0还是1,左边补齐0

    一般源码中用的比较多,例如

    计算:2 * 8
      2 << 3

    class OperatorDemo3 {
        public static void main(String[] args) {
            //<< 把<<左边的数据乘以2的移动次幂
            System.out.println(3 << 3); //3*2^3 = 3*8 = 24;
        
            //>> 把>>左边的数据除以2的移动次幂
            System.out.println(24 >> 2); //24 / 2^2 = 24 / 4 = 6
            System.out.println(24 >>> 2);
            
            System.out.println(-24 >> 2); 
            System.out.println(-24 >>> 2);
        }
    }
    /*
        计算出3的二进制:11
            00000000 00000000 00000000 00000011
        (000)00000 00000000 00000000 00000011000
            
        >>的移动:    
        计算出24的二进制:11000
            原码:10000000 00000000 00000000 00011000
            反码:11111111 11111111 11111111 11100111
            补码:11111111 11111111 11111111 11101000
            
            11111111 11111111 11111111 11101000
            1111111111 11111111 11111111 111010(00) 补码
            
            补码:1111111111 11111111 11111111 111010
            反码:1111111111 11111111 11111111 111001
            原码:1000000000 00000000 00000000 000110
            
            结果:-6
            
        >>>的移动:
            计算出24的二进制:11000
            原码:10000000 00000000 00000000 00011000
            反码:11111111 11111111 11111111 11100111
            补码:11111111 11111111 11111111 11101000
            
            11111111 11111111 11111111 11101000
            0011111111 11111111 11111111 111010(00)
            
            结果:
    */

    三目运算符:

    格式:比较表达式?表达式1:表达式2;

    比较表达式:结果是一个boolean类型。

    执行流程:
    根据比较表达式的计算返回一个true或者false。
    如果是true,就把表达式1作为结果。
    如果是false,就把表达式2作为结果。

    例子:

         int a1 = 5;
            int b1 = 6;
            System.out.println((a1>b1)? a1:b1);
        //当然也可以进行嵌套操作

     键盘录入:

    import java.util.Scanner;
    public class scanner {
        public  static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            System.out.println("请你输入一个数据:");
            int x = sc.nextInt();
    
            System.out.println("你输入的数字是:"+x);
    
        }
    
    
    }
  • 相关阅读:
    c++ 输出 变量名 字符串(zz.is2120.BG57IV3)
    分页存储过程
    连接字符串
    动软 DBHeper 完全代码
    java 数据库连接字符串
    DOS命令行下常见的错误信息
    点击单元格选择整行,又可编辑单元格
    label里文字中的下划线
    Delphi程序中动态生成控件的方法及应用
    双击dbgrid排序的问题
  • 原文地址:https://www.cnblogs.com/taozizainali/p/10587034.html
Copyright © 2011-2022 走看看