我是靠谱客的博主 现代乐曲,最近开发中收集的这篇文章主要介绍【详解】位运算符:位逻辑运算符,位移运算符(<<左移,>>右移)1.位逻辑运算符2.位移运算符,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        位运算符包括位逻辑运算符位移运算符。最近做算法的时候经常用到,现在来总结下。

        重点掌握的是 左移 << ,右移 >> 。

1.位逻辑运算符

那么位逻辑运算符怎么计算的呢?先看下位逻辑运算参照表:

0代表假,1代表真。

A&B:只有A、B同时为1的时候,结果为1。A、B其中一个为0,或都为0的时候,结果为0

A|B:A、B其中一个为1,或者都为1的时候,结果为1;A、B都为0的时候,结果为0

A^B:A、B的值相同的时候,则为0,A、B值不同的时候,结果为1

~A:A、B值相同结果为1,A,B值不同结果为0

 ①按位与&运算:全为1,结果为1

 ②按位或 | 运算:A、B其中一个为1,或者都为1的时候,结果为1;A、B都为0的时候,结果为0

 

 ③异或运算:A、B的值相同的时候,则为0,A、B值不同的时候,结果为1

 ④取反运算:1变0,0变1

 ⑤位逻辑运算也可以使用逻辑运算

2.位移运算符

① << 左移

举例:

1<<1:1左移1位,将1的二进制位所有的往左移一位。

1<<2:1左移2位,将1的二进制位所有的往左移两位

a<< n,a左移n位,将a的二进制位左移n位,相当于a*(2^n),a乘2的n次方。

 同样,short a = 9115,左移1位,左移2位。

采用高位溢出,低位补0的情况。

② >> 右移

举例:

32768>>1:1右移1位,将32768的二进制位所有的往左移一位。

32768>>2:1右移2位,将32768的二进制位所有的往左移两位.

a>> n,a右移n位,将a的二进制位右n位,相当于a/(2^n),a除以2的n次方。

负数的话,高位要0变1.

 ③ >>> 无符号右移:高位补0。byte short不适合做无符号右移。

  无符号右移规则和右移运算是一样的,只是填充时不管左边的数字是正是负都用0来填充,无符号右移运算只针对负数计算。

测试:

 public static void main(String[] args) {
        int a = 24;
        System.out.println("a右移2位:" + (a >> 2));
        System.out.println("a左移2位:" + (a << 2));
        System.out.println("a无符号右移:" + (a >>> 2));
    }

 

最后

以上就是现代乐曲为你收集整理的【详解】位运算符:位逻辑运算符,位移运算符(<<左移,>>右移)1.位逻辑运算符2.位移运算符的全部内容,希望文章能够帮你解决【详解】位运算符:位逻辑运算符,位移运算符(<<左移,>>右移)1.位逻辑运算符2.位移运算符所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部