zoukankan      html  css  js  c++  java
  • java中的位运算符

    Java中常用的位运算符

    1.按位与 &
    2.按位或 |
    3.按位异或 ^
    4.按位取反 ~
    5.左移 <<
    6.带符号右移 >>
    7.无符号右移 >>>

    位运算符的含义

    位运算符都是基于二进制进行计算的,且位运算符都是针对与int类型进行操作
    1.按位与 int a=1&1=1; int b=1&2=0;
    2.按位或 int a=1|1=1; int b=1|2=3;
    3.按位异或 异或的概念为若两个相同则返回false,两个不同则返回true,在位运算符中相同返回0,不同返回1
    int a=1^1=0; int b=1^2=3;
    4.按位取反 int a=~1=-2 int b=~2=-3
    应为在计算机中是用补码表示数字的,所以按位取反后的数字是一个补码,因此需将补码换为原码才是这个数的值
    例:1=(00000001)(按位取反)=11111110(补码)=(反码)10000001=(反码+1)=10000010(原码)=-2
    补码的补码是补码的原码
    5.左移 int a=1<<2=4 int b=2<<2=8
    6.带符号右移 >> 表示右移,如果该数为正,则高位补0,若为负数,则高位补1。
    例如:int a=8>>2=00001000>>2=00000010=2
    int -8>>2=1111_1111 1111_1111 1111_1111 1111_1000(补码)>>2
    =1111_1111 1111_1111 1111_1111 1111_1110(补码)
    =1000_0000 0000_0000 0000_0000 0000_0010(原码)=-2
    7.无符号右移 >>>表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0
    例如:int a=8>>>2=2
    int -8>>>2=1111_1111 1111_1111 1111_1111 1111_1000(补码)>>>2
    =0011_1111 1111_1111 1111_1111 1111_1110(补码)
    =0011_1111 1111_1111 1111_1111 1111_1110(原码)
    =1073741822

  • 相关阅读:
    Kubernetes 认证(证书)过期怎么办
    JavaScript 全屏显示窗口
    IE6下很无语的问题,不知为何
    项目开发-让设计模式成为一种心智(转)
    CSS中Float概念相关文章采撷
    随记浏览器兼容性
    常用正则表达式
    ASP.NET 调用Delphi DLL问题
    ASP.NET调用DELPHI DLL
    转:Oracle 排序中常用的NULL值处理方法
  • 原文地址:https://www.cnblogs.com/planted/p/15175592.html
Copyright © 2011-2022 走看看