整数除以二 可以利用移位运算。
那么, 负整型数 除以二 是不是同样可以利用移位运算?
通过这个问题,还又增长了一些知识.
首先,自己通过一个程序显示了 所有 带符号的单字节整型 的二进制表述(见 附述1)
之前我知道 左移运算符 的低位是补0的
以为移位运算都是补0
但注意 右移运算的补位 ,变量为正数时最高位补0 ,
而变量为负数时,最高位补位由编译系统决定。
我在vc10上测试的结果是,负数的右移,最高位补的是1,也就是说,负整型数同样可以通过移位运算得到正确除法结果。
补充一些知识:(见 附述2,3)
By ga6840
附述1
附述2
附述3