做个实验,看看C语言的右移到底是
(1)LSR逻辑右移,不复制符号位
(2)ASR算术右移,保留并复制符号位。
S32 a=0x81234567; /-2128394905
S32 result1=(a>>16); //
S16 result2=(a>>16);
S16 rrsult3=a/65536; //65536就是2的16次方
结果
result1 是0xffff8123
result2是0x8123
result3是0x8124
可见C语言右移就是算术右移,保留并复制符号位