Java自学笔记 运算符及二进制算法

http://www.runoob.com/java/java-operators.html
菜鸟学院教程
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:
A = 0011 1100
B = 0000 1101
A&b = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
~A= 1100 0011
Java自学笔记 运算符及二进制算法
事实上在上述的二进制表达中其实int型的数字总共有32位例如:
A=0000 0000 0000 0000 0000 0000 0011 1100;
那么~A=1111 1111 1111 1111 1111 1111 1100 0011;如果二进制的最高位为1,那么此二进制数转化的十进制数就为负数,转化方法为先按位取反,然后加1,得到负数绝对值的二进制码,然后转为十进制,加上符号。
例如:求~A的值:
1.先按位取反=0000 0000 0000 0000 0000 0000 0011 1100;
2.加一=0000 0000 0000 0000 0000 0000 0011 1101;
3.转为十进制=1+4+8+16+32=61;
4.加上负号=-61