ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java基础--二位运算符

2020-02-06 14:36:56  阅读:254  来源: 互联网

标签:说明 Java 二位 取反 运算符 异或 使用 移动


文章目录

1:运算符分类?

  • & (与)
  • | (或)
  • ^ (异或)
  • ~(取反)
  • << (左移)
  • (>>) (向右移位)
  • (>>>) 无符号右移

2:&(与) 运算符使用说明 ?

  • 只有两个位上面都是 1 才是 1,其他为 0
  • 特点:得到的结果的 max = 两个数中的最小值 比如 18 & 4 得到的值得肯定是 < = 4的;所以当需要把值控制在某个范围内时,可以使用该操作符。

3:I (或) 运算符使用说明 ?

  • 只要有 一个位为1 ,则结果为1 。

4:^ (异或) 运算符使用说明 ?

  • 只有两位数不同时才为 1。
  • 特点:
    • 与1相∧,使特定位翻转。

      • 0010110 ^ 0011111 = 0001001
    • 与0相∧,保留原值。

      • 0010110 ^ 0000000= 0010110
    • 交换两个值,不用临时变量

      • 代码示例:

         int a = 3, b = 4;
         a = a ^ b;
         b = b ^ a;
         a = a ^ b;
         System.out.println("a = " + a + ",b = " + b);
         //最后结果 a = 4 ,b = 3;
        

5:~ (取反) 运算符使用说明 ?

  • 为1的变为 0,为 0 的为 1。

6:<< (向左移位) 运算符使用说明 ?

  • 比如 5(101) << 1 , 5向左移动一位, 也就是 101(二进制) 整体向左移动一位,然后补 1 个 0。
  • 公式:5 乘以 2的一次幂 = m(要移动的数)*2的n(位移数)次幂
  • 数越来越大

7:>> (向右移位) 运算符使用说明 ?

  • 如果该数(要移动的数)为正,则高位补0,若为负数,则高位补1
  • 比如 5(101) >> 1 , 5向右移动一位, 也就是 101(二进制) 整体向右移动一位,然后砍 1 位数,也就是 10 (2) ;
  • 公式:5/2的一次幂 = m/2的n次幂(取整数)
  • 对于正数来说越来越小

8:无符号右移(>>>) 运算符使用说明 ?

  • 和 >> 类似,只不过 >>> 会直接去掉移动的位数 ;
  • 对于正数来说和 >> 一样效果,但对于负数来说,当移动 1 位 时,将达到一个正数最大值,之后移动到32位时,等于其本身的值。

9:代码地址

萧凡君 发布了24 篇原创文章 · 获赞 7 · 访问量 4397 私信 关注

标签:说明,Java,二位,取反,运算符,异或,使用,移动
来源: https://blog.csdn.net/qq_24067089/article/details/104195623

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有