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