java基础-位运算

大家好,我是IT修真院深圳分院第十三期学员,一枚正直纯洁善良的JAVA程序员。 今天给大家分享一下,修真院官网JAVA任务一里面的一个扩展:java基础位运算

1 背景介绍
计算机的内部(java…)只有二进制数据,在显示的时候编程语言提供API将二进制转换成十进进制显示出来。所以计算机内部(java)怎么转化的呢,那就要进入今天的主题。

2.知识剖析
2.1 什么是位运算
就是直接对整数在内存中的二进制位进行操作,怎么运算的,就是结合一些逻辑运算符进行运算的,比如:(常见的五种)
1.>>>:无符右移位
2.>>:右移位
3.<<:左移位
4.&:与(逻辑乘法
5.|:或(类似加法)
2.2 计算规则
1、>>>:将数字向右移动,高位补充0,低位溢出舍弃
n=01010101 11011101 11010101 11101110
n>>>1 =00101010 11101110 11101010 11110111
2、>>:数位向右移动,高位为1(负数)则补1,高位为0(正数)则补零。保持符号不变
n=11010101 11011101 11010101 11101110
n>>1 =11101010 11101110 11101010 11110111
3、<<:将数字向左移动,低位补充0,高位溢出舍弃
n=11010101 11011101 11010101 11101110
n<< 1 =11101010 11101110 11101010 11110111
4、 &:两个数上下对齐,对应位数进行与运算(类似乘法)
1&1=1 ,1&0=0,0&1=0,0&0=0
5、 |:两个数上下对齐,对应位数进行与运算 (类似加法)
1|1=1,1|0=1,0|1=1,0|0=0

3.常见问题:
这些位运算符有什么用?

4.解决方案:
1.位运算的数学意义:小数点向左向右移动。
比如十进制100,小数点向左移动一位就等于100/10=10,移动两位100/100=1;
同理:如果n=2048;n>>>1=1024(因为是二进制,所以基数就是2)以此类推。
注:负数的时候不适合用“>>>”(无符右位移),因为它是高位补充零,低位舍弃,
而负数的高位是1,如果变成高位变成零,那就不知道变成什么数字了,所以要用
到“<<”。
代码演示:

    public class demo {
    public static void main(String[] args) {
        int a=2048;
        for(int i=0;i<10;i++){
            a=a>>>1;
            System.out.println(a);
        }
    }
}

1024
512
256
128
64
32
16
8
4
2
所以同理:n=2;n<<1=4,小数点向右移动一位。
2.其实位运算的最主要用途不是它的数学意义,而是经典案列“掩码运算”。
示例:
截取一个数的后八位:
这里写图片描述
合成为一个int值:
这里写图片描述

5.编码实战
6.扩展思考:
回到我们背景介绍,因为计算机和java内部只认识二进制,所以底层进行一系列的位运算转换成我们想要的十进制或者根据编码转换成我们想要的文字等。从这里我们又可以扩展出一个问题,那就是只要是我们出现乱码情况那就一定是编码问题。
注:本人初学java者,如有不对敬请指出,谢谢!

7.参考文献
CSDN、百度百科

8 更多讨论
总结:
1.什么是位运算?
就是直接对整数在内存中的二进制位进行操作,怎么运算的,就是结合一些逻辑运算符进行运算的
2.位运算有什么用?
1)数学意义:小数点的运算
2)掩码运算
3.位运算怎么实现的:
计算机通过位运算等一些操作在底层转换成十进制等一些视图文字等。

温馨提示:本人初学java者,如有不对敬请指出,谢谢!

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。

快来与我一起学习吧~技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。

快来与我一起学习吧~ http://www.jnshu.com/login/1/28836439

腾讯视频:https://v.qq.com/x/page/j0783vyc7tw.html

猜你喜欢

转载自blog.csdn.net/weixin_42955916/article/details/82493598