c语言中为什么左移不分符号数无符号数,而右移分呢?? 就是<<这个低位补0,而>>如果无符号数高位补0,有符号数补符号数,为什么呢
左移时是不区分无符号数的,而进行右移时也不区分是否是无符号,移进的值在最高位补0。
例如:0xff进行右移一位0xff>>1,其结果为0x7f,请参见以下代码:
那为什么要这样规定呢,我是说于有符号数,其左移操作还是逻辑左移,为什么右移又要分情况了呢??