位运算操作符
右移分算术右移与逻辑右移。算术右移,在高位补零;逻辑右移,正数高位补零。负数高位补一,即保持符号位。
java中的>>为逻辑右移,>>>为算术右移。c++中只有>>,这个>>有可能算术右移,也有可能逻辑右移。是根据进行右移的操作数是否有符号来进行判断的。
如果进行右移的数有符号,如int,则>>为逻辑右移。如果没有符号,如unsigned int,那就是算术右移。
位运算操作符
右移分算术右移与逻辑右移。算术右移,在高位补零;逻辑右移,正数高位补零。负数高位补一,即保持符号位。
java中的>>为逻辑右移,>>>为算术右移。c++中只有>>,这个>>有可能算术右移,也有可能逻辑右移。是根据进行右移的操作数是否有符号来进行判断的。
如果进行右移的数有符号,如int,则>>为逻辑右移。如果没有符号,如unsigned int,那就是算术右移。