在計算機中是以一個字節儲存的,那么 5是 00000101 -5 就是10000101 這樣我們很容易理解,但是為了參加運算,計算機中常常是以補碼的形式儲存的,即取反+1(符號位不變). 今天看人說為什么負數的補碼最高位一定是1,其實很容易解釋,00000001-01111111 是表示正數的,從1000000-11111111是表示負數的儲存的,那么你說最高位是不是一定是1. 至于補碼是怎么回事,看那么理論其實很饒口難以理解.其實你這樣想下 5+(-5)=0 (0有2中情況會出現,正常為0還有益處數據為0) 正數和負數儲存的數相加怎么變為0肯定是用益處,當數值等于256那么數據益處低位剛好全為0, 你知道5的2進制表示,那么你想想既然+起來是00000000 那么-5的直就出來了,再想想那個補碼法則,取反后加起來運算肯定是11111111然后在加1就變成0了,其實我門常常使用的是便于直觀的正數最高位換 成1就是負數的原碼,實際存儲到數據寄存器中就自動以補碼形式儲存為的就是便于計算機運算. 說錯了應該是為了便于計算機運算才提出補碼這個定義.
向高手學習。。。
| 歡迎光臨 (http://www.raoushi.com/bbs/) | Powered by Discuz! X3.1 |