TS:TypeScript 二元运算符 << , >> , >>> , & , | , ^功能与定义

知识点一:& (与运算符)

1.特点:二元操作符,操作两个二进制数据;两个二进制数最低位对齐,只有当两个对位数都是1时才为1,否则为0
2.案例:

    int a = 3 & 2 ; 
    System.out.println(a); //结果为 2 

3.分析:

	3的二进制补码表示为:
        00000000 00000000 00000000 00000011
    2的二进制补码表示为:
        00000000 00000000 00000000 00000010
    运算:3 & 2 
        00000000 00000000 00000000 00000011
    &   00000000 00000000 00000000 00000010
    -------------------------------------------
        00000000 00000000 00000000 00000010            二进制是2  

知识点二:| (或运算符)

1.特点:二元操作符,操作两个二进制数据;两个二进制数最低位对齐,当两个对位数只要有一个是1则为1,否则为0
2.案例:

int a = 3 | 2 ; 
System.out.println(a); //结果为 3 

3.分析:

    3的二进制补码表示为:
        00000000 00000000 00000000 00000011
    2的二进制补码表示为:
        00000000 00000000 00000000 00000010
    运算:3 | 2 
        00000000 00000000 00000000 00000011
    |   00000000 00000000 00000000 00000010
    -------------------------------------------
        00000000 00000000 00000000 00000011            该补码对应十进制为3  

知识点三:^ (异或运算符)

1.特点:二元操作符,操作两个二进制数据;两个二进制数最低位对齐,只有当两个对位数字不同时为1,相同为0
2.案例:

    int a = 3 ^ 2 ; 
    System.out.println(a); //结果为 1 

3.分析:

    3的二进制补码表示为:
        00000000 00000000 00000000 00000011
    2的二进制补码表示为:
        00000000 00000000 00000000 00000010
    运算:3 ^ 2 
        00000000 00000000 00000000 00000011
    ^   00000000 00000000 00000000 00000010
    -------------------------------------------
        00000000 00000000 00000000 00000001           该补码对应十进制为1

知识点四:~ (非运算符)

1.特点:一元操作符,
2.规则:生成与输入位相反的值–若出入0,则输出1;若输入1,则输入0
3.案例:

    int a = ~ 2 ; 
    System.out.println(a); //结果为 

4.分析:

     2的二进制补码表示为:
        00000000 00000000 00000000 00000010
     运算:
      ~     00000000 00000000 00000000 00000010
    ------------------------------------------
         11111111 11111111 11111111 11111101   //该补码对应十进制为:-3

知识点五:<<(左移运算符)

0.形式: m << n
1.特点:二元操作符,m数字二进制向左移动n位的结果;结果相当于: m*(2的n次方)
2.案例:

    int a = 3 << 2 ; 
    System.out.println(a); //结果为 12 

3.分析:

    3的二进制补码表示为:
        00000000 00000000 00000000 00000011

    运算:3 << 2 
            00000000 00000000 00000000 00000011
    << 2    
    -------------------------------------------
            00000000 00000000 00000000 00001100            该补码对应十进制为12 

知识点六:>> (右移运算符)

0.形式: m >> n
1.特点:二元操作符,m数字二进制向右移动n位的结果;结果相当于: m / (2的n次方) 的结果向上取整
2.案例:

    int a = 3 >> 2 ; 
    System.out.println(a); //结果为 0 

3.分析:

    3的二进制补码表示为:
        00000000 00000000 00000000 00000011

    运算:3 >> 2 
            00000000 00000000 00000000 00000011
    >> 2    
    -------------------------------------------
            00000000 00000000 00000000 00000000           该补码对应十进制为0

4.注意: 最后的11向右移动两位,正好补上左边补上0; 所以结果为0

知识点七:>>> (无符号右移运算符)

1.二元操作符
2.特点:它使用0扩展,无论正负都在最高位补0
3.案例:

    int a = 3 >>> 2 ; 
    System.out.println(a); //结果为 0 

4.分析:
3的二进制补码表示为:

        00000000 00000000 00000000 00000011
    运算:
        00000000 00000000 00000000 00000011
    >>>2
    ------------------------------------------
        00000000 00000000 00000000 00000000 
————————————————

你可能感兴趣的:(typeScript,typescript)