源码:最直观的二进制表示
反码:
- 正数:和源码一样
- 负数:符号位不变,其余位按位取反
补码:
- 正数:和源码一样
- 负数:符号位不变,反码+1
二进制最高位表示符号(0正1负)
计算机负数用的是补码表示,原因是:
- 减法可以当作加法来运算
- 0的表述实现统一
左移: << 补0
右移: >> 补符号位
无符号右移: >>> 补0
正整数: >> n 等于除以2^n << n 等于乘以2^n
位运算操作整数。
& 按位与, 遇0则0。
- | 按位或, 遇1则1。
- 按位非, 操作一个数,对位取反,0变成1,1变成0。
^ 按位异或 无进位相加。
异或运算的性质:
- 0^N == N N^N == 0
- 异或运算满足交换律和结合率
长整数转成短整数:直接截断(可能会造成精度的丢失)
短整数转成长整数:补符号位