前提
所有的10进制整数在计算机里面都是用32位的二进制表示。
一个字节32位。第一位代表符号位,所以整数最大可表示(2^31)-1
负数用32位怎么表示
去除符号位 后面取反+1
例如:11111111 11111111 11111111 11111011
第一位代表符号,后面则变为 1000000 00000000 00000000 00000101 代表4,
加上符号位,则该数代表-5
位运算
& 与运算: 两个为1才是1
代码示例
| 或运算: 任何有一个1就是1
代码示例
异或 非运算: 有且只有一个1才是1
代码示例
左移 <<
用32位表示的十进制数往左边移动一位,后面的补0,每移动一位,移动后的数=原数*2
右移 >> >>>
带符号右移 >>
无符号右移 >>>
代码示例
相反数获取
无论正负数取反加1
例如
00000000 00000000 00000000 00001011 该32位代表11
取反加1变成
11111111 11111111 11111111 11110101
获取该负数变为
10000000 00000000 00000000 00001011 代表-11
代码示例

代码:
algorithm模块 FirstDay.Class

