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位,具有int型的值,对于long型值,则要在数字后加L或l,如123L表示一个长整数,它在机器中占64位。整型变量的类型有byte、short、int、long四种。下面列出各类型所在内存的位数和其表示范围。数据类型描述所占位数IntegersbyteByte-lengthinteger8-bittwo‘scomplementshortShortinteger16-bittwo‘scomplementintInteger32-bittwo‘scomplementlongLonginteger64-bittwo‘scomplementRealnumbersfloatSingle-precisionfloatingpoint32-bitIEEE754doubleDouble-precisionfloatingpoint64-bitIEEE754OthertypescharAsinglecharacter16-bitUnicodecharacterbooleanAbooleanvalue(trueorfalse)trueorfalseint类型是最常使用的一种整数类型。它所表示的数据范围足够大,而且适合于32位、64位处理器。但对于大型计算,常会遇到很大的整数,超出int类型所表示的范围,这时要使用long类型。由于不同的机器对于多字节数据的存储方式不同,可能是从低字节向高字节存储,也可能是从高字节向低字节存储,这样,在分析网络协议或文件格式时,为了解决不同机器上的字节存储顺序问题,用byte类型来表示数据是合适的。而通常情况下,由于其表示的数据范围很小,容易造成溢出,应避免使用。short类型则很少使用,它限制数据的存储为先高字节,后低字节,这样在某些机器中会出错。整型变量的定义,如:byteb;//指定变量b为byte型shorts;//指定变量s为short型inti;//指定变量i为int型longl;//指定变量l为long型浮点型(实型)数据实型变量的类型有float和double两种,下表列出这两种类型所占内存的位数和其表示范围。数据类型所占位数数的范围float323.4e-038~3.4e+038double641.7e-308~1.7e+308双精度类型double比单精度类型float具有更高的精度和更大的表示范围,常常使用。(三)实型变量定义,如floatf;//指定变量f为float型doubled;//指定变量d为double型[注]与C、C++不同,Java中没有无符号型整数,而且明确规定了整型和浮点型数据所占的内存字节数,这样就保证了安全性、鲁棒性和平台无关性。2.Java位运算符Java定义的位运算(bitwiseoperators)直接对整数类型的位进行操作,这些整数类型包括long,int,hort,char,andbyte。表4-2列出了位运算:运算符结果~按位非(NOT)(一元运算)&按位与(AND)|按位或(OR)^按位异或(XOR)>>右移>>>右移,左边空出的位以0填充;无符号右移<<左移&=按位与赋值|=按位或赋值^=按位异或赋值>>=右移赋值>>>=右移赋值,左边空出的位以0填充;无符号左移<<=左移赋值3.详细解释4.按位非(NOT)...