移位运算符
<<:左移运算符,向左移若干位,高位丢弃,低位补零。x << 1,相当于 x 乘以 2(不溢出的情况下)。>>:带符号右移,向右移若干位,高位补符号位,低位丢弃。正数高位补 0,负数高位补 1。x >> 1,相当于 x 除以 2。>>>:无符号右移,忽略符号位,空位都以 0 补齐。
由于
double,float 在二进制中的表现比较特殊,因此不能来进行移位操作。移位操作符实际上支持的类型只有
int和long,编译器在对short、byte、char类型进行移位前,都会将其转换为int类型再操作。