所以,我說你沒明白,什么叫 常量, 什么叫變量. 所以我讓你分步寫, 有助你理解.
result = 0x80 >> shift; 你為什么不分步寫?如果分步寫了,根本就沒有這樣的疑惑!
0x80 是 常量, 它能移位么?? 不能! 所以, 你分步寫只能這樣寫:
result = 0x80;
result >>= shift;
看出來了么?? 你的 result 是 有符號char -128~127, 所以 0x80 賦值后,是-128, 明白了么??
提個小建議,你不如先 學 1禮拜 的匯編, 也不要深入, 了解一下 51的 運轉原理,以及常量變量的 應用關系,再回頭看這問題,就會發現根本不是問題。 |