做個實驗,看看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語言右移就是算術右移,保留並複製符號位