的二进制等效0x80000000
值为10000000000000000000000000000000
。因此,将其移位8位将导致二进制数100000000000000000000000
为0x800000
。
的二进制等效0xff00
值为0b1111111100000000
。将其移位8位将导致0b111111110000000000000000
。
实际上,左移和右移对数字的二进制等效项有效,而对十六进制等效项无效。如您所见,二进制等效项比十六进制等效项具有更多的数字。
但是,假设我们要进行此操作,0x80000000 >> 100
那么100个移位将比二进制数字的位数大,因此结果为0x0
。
在左移情况下,每次左移操作都会添加其他零。
哇!很好的解释,现在很清楚。非常感谢你!