首先记录一下Java中的一些规则,然后是关于位运算的一些知识。

重要概念

标识符

由字母、数字、下划线和美元符号组成,且第一位不能是数字,并且不能是java中的保留关键字。

命名规范

  1. 类名:一般是名词,首字母大写,后续首字母大写
  2. 方法名: 一般是动词,首字母小写,后续首字母大写
  3. 变量:首字母大写,后续首字母大写
  4. 常亮:全大写
  5. 单词拼接:userLastName

位运算

位运算符

或运算符号和md语法冲突,用I代替
运算符含义举例
&a&b
Ia I b
~取反~a
^异或^a
<<左移位a<<2
>>右移位b>>4
>>>无符号右移位x>>>2

逻辑位运算

运算和逻辑运算是一个道理

取反则是取相反的值,如果a = 1,那么取反后a = 0

异或是如果a和b相等那么值为0,如果不相等则值为1

位逻辑运算是将操作数转换成二进制,然后从右到左依此对比运算。

// 与运算
0000 1100
0000 1000
——————————
0000 1000    //值为 8 

// 或运算
0000 0100
0000 1000
——————————
0000 1100    //值为12

// 异或运算
0001 1111
0001 0110
——————————
0000 1001    //值为9

//取反运算
0111 1011
——————————
1000 0100

位移运算

左位移运算

将一个二进制数安照指定位数左移,高位溢出丢弃,低位空缺用0补齐。

0000 0001
0000 0010 <<

向左移位相当于将此数乘2

右位移运算

将一个二进制数安照指定位数右移,低位溢出丢弃,高位空缺用0补齐。

0000 1001
0000 0100 >>

向左移位相当于将此数除2

如果是负数,则空缺用1来补位

无符号右位移

将一个二进制数安照指定位数右移,低位溢出丢弃,高位空缺用0补齐,如果是负数,二进制第一位为1,如果进行无符号右位移会变成一个正数,然后继续位移就是继续除2

从二进制的实现机制来说,byte、short不适用于>>> 运算
点击广告也是对本站的支持哦!(~ ̄▽ ̄)~
本文除特殊注明外版权归属为:风也雨忆笙
文章页脚已标识是否允许转载,转载请注明出处!
本文链接:
最后修改:2020 年 09 月 18 日 08 : 34 PM
如果您觉得我的文章有帮助,请随意赞赏!