目录
一.原码,反码,补码
整数的二进制表示方式有三种:原码,反码,补码。
其中,最高位的一位是符号位,其余的是数值位。
其中,”0“表示正号(0111111111111111),”1“表示符号(1000000000000000)。
原码:直接将数值按照正负数的形式翻译成二进制得到的就是原码。
反码:将原码的符号位不变,其他位依次取反就可以得到反码。
补码:反码+1就得到补码。
补码得到原码也是可以使用:取反,+1的操作或-1,取反。
对于整形来说:数据存放内存中的是其补码,只有打印出来的是原码。
正数的补码是其原码,负数的补码是其原码取反,+1。
二.移位操作符
(移动的是二进制位)(操作数必须是整数)
注意:不要移动负数位。
1. <<——左移操作符
移动规则:左边抛弃,右边补零
00000000000000000000000000000001——1
左移一位——
00000000000000000000000000000010——2
2. >>——右移操作符
移动规则:右移运算分两种(右移到底是逻辑还是算数,取决于编译器的实现,常见的编译器是算术右移)
2.1. 逻辑右移:左边用0填充,右边丢弃。
2.2. 算术右移:左边用原该值的符号位填充,右边丢弃
三.位操作符
(操作数必须是整数)
操作和计算的是二进制位。(且在数据的补码上操作)
& |
按位与 |