• java特殊运算符


    按位运算符

      定义:按位运算符是来操作整数基本数据类型中的单个“比特”(bit),即二进制位,位运算符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。

      分类:与(&)、或(|)、异或(^)、非(~)

      

    1、与运算

      定义:都为1才得到1,其它情况得到0

      如:5&4    

      二进制:0101 & 0100  = 0100       0100对应十进制4

    2、或运算

      定义:两个数有一个为1,则得到1

      如:5|4

      二进制:0101 & 0100  = 0101       0101对应十进制5

    3、异或运算

      定义:两个数不同则得到1

      如:5^4

      二进制:0101 ^ 0100  = 0001       0001对应十进制1

    4、非运算

      定义:取反(需要考虑 符号位)

      如:~5

      二进制:~0000 0000 0000 0101  = 1111 1111 1111 1010   1111 1111 1111 1010对应十进制-6

      顺便说下:符号位在最高1位,符号位为0表示正数,为1表示负数

     移位运算符

    1、左移运算符

      定义:运算符左边数据的二进制位依次往左移动n位(n为运算符右边的十进制值),末尾(此时末尾为二进制最右边)用0补位。

      说明:左移只考虑末尾位,不管正负数,都不影响符号位,因此不分有无符号位运算

      如:4830 << 5 (4830的二进制位左移5位)

      

      结果:

      

      总结:x << y 相当于 x*2

    2、带符号右移运算符

      定义:运算符左边数据的二进制位依次往右边移动n位(n为运算符右边的十进制值),末尾(此时末尾为二进制位最左边)用0或者1(正数用0,负数用1)补位。

      正数

      如:4830 >> 5  

      

      结果:

           正数用0补位,输出时应为0000010010110(输出省略前面0)

      负数

      如:-4830 >> 5

      

      结果:

      

      总结:x << y 相当于 x/2

    3、不带符号右移运算符

      定义:运算符左边数据的二进制位依次往右边移动n位(n为运算符右边的十进制值),末尾(此时末尾为二进制位最左边)用0补位。

      说明:负数在此没有算数意义,因为只补0,

      如:-4830 >>> 5

      

      结果:

      

  • 相关阅读:
    python全栈开发day76-博客主页
    python全栈开发day75-用户注册页面ajax实现,用户头像上传、预览、展示
    python全栈开发day74-普通验证码和滑块验证码
    python全栈开发day73-Django认证系统
    python全栈开发day72-django之Form组件
    python全栈开发day70-Django中间件
    python全栈开发day69-cookie、session
    python全栈开发day68-ORM操作:一般操作、ForeignKey操作、ManyToManyField、聚合查询和分组查询、F查询和Q查询等
    选择排序
    冒泡排序
  • 原文地址:https://www.cnblogs.com/jim0816/p/9833639.html
Copyright © 2020-2023  润新知