Java位运算符位运算符用来对二进制位进行操作,Java中提供了如下所示的位运算符:位运算符(>>,<<,>>>,&,|,^,~),位运算符中,除~以外,其余均为二元运算符
操作数只能为整型和字符型数据
十进制和二进制互转算法十进制转二进制:用2辗转相除至结果为1将余数和最后的1从下向上倒序写就是结果例如302302/2=151余0151/2=75余175/2=37余137/2=18余118/2=9余09/2=4余14/2=2余02/2=1余0故二进制为100101110二进制转十进制从最后一位开始算,依次列为第0、1、2
位第n位的数(0或1)乘以2的n次方得到的结果相加就是答案例如:01101011
转十进制:第0位:1乘2的0次方=11乘2的1次方=20乘2的2次方=01乘2的3次方=80乘2的4次方=01乘2的5次方=321乘2的6次方=640乘2的7次方=0然后:1+2+0+8+0+32+64+0=107.二进制01101011=十进制107.基础知识o补码所有的整数类型(除了char类型之外)都是有符号的整数
这意味着他们既能表示正数,又能表示负数
Java使用补码来表示二进制数,在补码表示中,最高位为符号位,正数的符号位为0,负数为1
补码的规定如下:对正数来说,最高位为0,其余各位代表数值本身(以二进制表示),如+42的补码为00101010
对负数而言,把该数绝对值的补码按位取反,然后对整个数加1,即得该数的补码
如-42的补码为11010110(00101010按位取反11010101+1=11010110)用补码来表示数,0的补码是唯一的,都为00000000
(而在原码,反码表示中,+0和-0的表示是不唯一的,可参见相应的书籍)
而且可以用111111表示-1的补码(这也是补码与原码和反码的区别)
o类型长度整型整型常量在机器中占32位,具有i