關於計算機的原始碼 反碼、補碼其實都是越搞越複雜,聽課聽了很久後逛論壇發現乙個帖子寫的很好 但是不記得鏈結了
反正大致意思就是最開始 就沒有原始碼反碼補碼的概念,
計算機實際上是不會做減法運算的,他所有的計算都是基於加法的,最開始的計算機就是加法機
做的減法運算都是 變成了加上乙個數字的負數,,然而計算機怎麼表示乙個負數叻,,
假如我們有乙個八位的計算機,,
他的表示範圍為0000 0000---1111 1111
如果要他表示-128-127 還是256個數字
那麼計算機會讓0000 0000--0111 1111 0-127 表示0-127
而1000 0000--1111 1111 1 128--256表示 -128 --- -1
所以在計算機中的減法運算都是 加上乙個負數。
由於整數第一位都是0而負數第一位都是1所以後面就出了乙個符號位的概念,,
我們看看下面一組資料
0和-1 0000 0000 1111 1111
1和-2 0000 0001 1111 11110
10和-11 0000 1010 1111 0101
看到這些資料,又因為一些人找出了一些亂七八糟的規律就有了原始碼反碼補碼的概念(學這個的時候把我差點搞死!)
他們的二進位製碼相加正好等於1111 1111 255 由於他們的二進位製碼正好相反 所以有了個名字 反碼
-1 的絕對值1 ,二進位製碼為0000 0001,他們把他叫做原始碼,,每位取反1111 1110叫做反碼,最後加上1後的1111 1111二級制叫做補碼,這個二進位製碼就是實際上計算機的存值。
感覺學習這個 最開始就應該把自己以前的數學知識全忘掉,把自己當成一台計算機,,那麼就能很好的理解計算機減法的原理,,
二進位制的補碼 反碼
本部落格介紹如何求二進位制數的原碼 補碼 反碼。對於正數來說,原碼,反碼,補碼都是一樣的。對於負數,即二進位制最高為1 求補碼 從數的右邊往左開始數,遇到 0 不理它,直到遇到第乙個 1 為止 不包括這個1 以後的每一位數取反即是它的原碼或補碼,符號位不變,還是 1 補碼的補碼是原碼 如原碼 110...
二進位制的原碼 反碼 補碼
如何表示二進位制數的正負呢 通常採用的方法是在二進位制數的前面加一位符號位,符號位為0表示這個數是正數,符號位位1表示這個數字負數,這種形式的數就稱為原碼。為什麼需要二進位制補碼 在做減法時,如果兩個數時用原碼表示的,則首先需要比較兩數絕對值的大小,然後以絕對值大的乙個數作為被減數 絕對值小的乙個作...
二進位制原碼 反碼 補碼詳解
原碼 原碼是指將最高位作為符號位 0表示正,1表示負 其它數字位代表數值本身的絕對值的數字表示方式。例如 數字6 在計算機中原碼表示為 0 000 0110 其中,第乙個數字0是符號位,0表示正數,0 000110是數字6的二進位制資料表示。數字 6 在計算機中原碼表示為 1 000 0110 以上...