首先记录一下Java中的一些规则,然后是关于位运算的一些知识。
重要概念
标识符
由字母、数字、下划线和美元符号组成,且第一位不能是数字,并且不能是java中的保留关键字。
命名规范类名:一般是名词,首字母大写,后续首字母大写
方法名: 一般是动词,首字母小写,后续首字母大写
变量:首字母大写,后续首字母大写
常亮:全大写
单词拼接:userLastName
位运算
位运算符或运算符号和md语法冲突,用I代替运算符含义举例&与a&b
I或a I b
~取反~a
^异或^a
<
>>右移位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不适用于>>> 运算