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 
————————————————
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全面解读

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值