Skip to content

McSources/LeetCode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 

Repository files navigation

LeetCode

  • 本项目是我在leetcode上做题的记录,考虑到题目可能提供其他的类,所以用包来组织每个题目。
  • 为了方便定位每个题目,我用题号和难度来作为包名。
  • 每个包里面都包含所有题目提供的类(解题的类和其他辅助类),这些类会尽量避免修改,不过为了方便或规范会添加必要的方法或属性等。
  • 每个包还包含一个测试类,测试类用来测试题解是否,有时为了方便或规范还会添加其他的工具方法或属性。
  • 除了util包里的类,所有的类都应该是默认访问权限,即不用public修饰。

按位操作符

按位运算符是对整数的二进制位执行布尔代数运算,即将整数转换成二进制,对二进制的每一位进行单独操作。

&(按位与):如果两个输入位都是1,则输出1。1 & 11 = 1;100 & 101 = 100;111 & 10 = 10

|(按位或):如果两个输入位有一个是1,则输出1。1 | 11 = 11;100 | 101 = 101;111 & 10 = 111

^(按位异或):如果两个输入位只有一个1,则输出1。1 ^ 11 = 10;100 ^ 101 = 1;111 ^ 10 = 101

~(按位非):也叫取反操作符,是一元操作符,输出与输入相反的值。

移位操作符

移位操作符操作的运算对象也是二进制的“位”。 移位操作符只可用来处理整数类型。

<<(左移位操作符):能按照操作符右侧指定的位数将操作符左边的操作数向左移动(在低位补0)。

>>(“有符号”右移位操作符):按照操作符右侧指定的位数将操作符左边的操作数向右移。 “有符号”右移位操作符使用“符号扩展”;若符号位正,则在高位插入0;若符号位负。则在高位插入1。

>>>(“无符号”右移位操作符): 他使用“零扩展”;无论正负,都在高位插入0。这一操作符是C或C++中所没有的。

如果对char、byte或者short类型的数值进行移位处理,那么在移位进行之前,它们会被转为int类型,并且得到结果也是一个int类型的值,只有数值右端的低5位才有用,这样可防止我们移位超过int类型所具有的位数,(因为2的5次方位为32,而int类型只有32位)。若对一个long类型的数值进行处理,最后得到结果也是long类型,此时只会用到数值右端的低6位,以防止移位超过long类型数值具有的位数

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages