不要笑话我二进制转换都忘了,在这里介绍一下二进制与十进制互转方法: 18转二进制: 理解方法:18>16 在下面画1,18-16=2。2不大于8和4,继续往左移。2-2=0,在2的下面画1。最终得到:10010 反转:按照给的二进制数,按照从左到右填写。再进行相加。结果:2+16=18; 之所以要转成二进制是方便电脑读取,它代表了电子的两个状态,on和off;
原码:原码表示法在数字前面增加了一位符号位,即最高位为符号位,正数位该位为0,负数位该位为1.比如十进制的5如果用8个二进制位来表示就是00000101,-5就是10000101。
反码:正数的反码是其本身,负数的反码在其原码的基础上,符号位不变,其余各个位取反。5的反码就是00000101,而-5的则为11111010。
补码:正数的补码是其本身,负数的补码在其原码的基础上,符号位不变,其余各位取反,最后+1。即在反码的基础上+1。5的反码就是00000101,而-5的则为11111011。
举例1:9&7 1001对比111 为:1 举例二:9|7 结果为:1111。再转化为十进制为15; 举例三:2<<1,表示2左移1位。2的十进制为10 ,左移一位为:100。再转化为十进制结果为:4. 举例四:3>>1,表示3右移1位,一列的例外。3的十进制为11,右移一位为:1.1。因为位运算只对整数有效,所以会省略小数点后的数。最终结果为:1; 举例五:一个数据对另一个数据位异或两次,该数本身不变。10^ 20 ^20 结果为10; Java相关位运算应用