命名规范,进制

命名规范

  1. 包名小写
  2. 类名或者接口明,所有单词首字母大写。大驼峰命名法
  3. 方法名和方法名,第一个单词小写,后面的单词首字母大写。小驼峰命名法 简称驼峰法
  4. 常量,所有的字母大写,单词之间用_线连接

进制

  1. 二进制 0b或者0B开头 如: int n1 = 0b1010;
  2. 八进制 以0开头 如:int n2 = 01010;
  3. 十进制
  4. 十六进制 以0x开头 如:n3 = 0x1010

计算符号:

&(and 按位与) |(or 按位或) ^(xor 按位异或) ~(not 按位取反) >>(shr 算数右移,符号不变,高位补零,低位丢弃) <<(shl 高位丢弃,符号不变,低位补零) >>>(无符号右移,高位补零,低位丢弃)

进制的计算:

计算 :按位取反-2

~-2 => not 0x8000 0002

10000000 00000000 00000000 00000010 -2的原码
反码
11111111 11111111 11111111 11111101
补码 = 反码 +1
11111111 11111111 11111111 11111110
取反
00000000 00000000 00000000 00000001

结果:
1

计算 :按位取反2

~2 => not 0x0000 0002

先算出补码,因为正数,原码 反码 补码 都一样
所以补码为:
00000000 00000000 00000000 00000010
计算按位取反的值
11111111 11111111 11111111 11111101
此时得到是一个负数(最高位是1)的补码,应该还原成原码
先得到此负数反码
反码 = 补码 - 1
11111111 11111111 11111111 11111100
原码 = 反码取反(除去符号位的其他位取反)
10000000 00000000 00000000 00000011

结果:
-3

你可能感兴趣的:(java,算法)