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