小猿圈操做系統之機器碼(原碼、反碼、補碼)

機器碼是最底層的語言,那計算機最底層是什麼?無疑最底層是由0和1組成,那什麼是原碼、什麼是反碼、什麼是補碼呢?他們之間有什麼關係呢,小猿圈老師帶你學習一下,認真聽,防止掛科哦,哈哈哈。學習

1、機器數:get

一個數在計算機中的二進制表示形式叫作這個數的機器數。機器數是帶符號的,在計算機用一個數的最高位存放符號, 正數爲0, 負數爲1。 好比,十進制中的數 +3 ,計算機字長爲8位,轉換成二進制就是00000011。若是是 -3 ,就是 10000011 。 那麼,這裏的 00000011 和 10000011 就是機器數基礎

2、真值:二進制

由於第一位是符號位,因此機器數的形式值就不等於真正的數值。例如上面的有符號數 10000011,其最高位1表明負,其真正數值是 -3 而不是形式值131(10000011轉換成十進制等於131)。因此,爲區別起見,將帶符號位的機器數對應的真正數值稱爲機器數的真值。方法

例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1計算機

3、原碼:語言

原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其他位表示值. 好比若是是8位二進制: [+1]原 = 0000 0001 [-1]原 = 1000 0001底層

第一位是符號位. 由於第一位是符號位, 因此8位二進制數的取值範圍就是: [1111 1111 , 0111 1111] 即 [-127 , 127]ps

原碼是人腦最容易理解和計算的表示方式.tar

4、反碼

反碼的表示方法是:正數的反碼是其自己;負數的反碼是在其原碼的基礎上, 符號位不變,其他各個位取反。

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

5、補碼

補碼的表示方法是:正數的補碼就是其自己;負數的補碼是在其原碼的基礎上, 符號位不變, 其他各位取反, 最後+1. (即在反碼的基礎上+1)

[+1] = [00000001]原 = [00000001]反 = [00000001]補

[-1] = [10000001]原 = [11111110]反 = [11111111]補

對於負數, 補碼錶示方式也是人腦沒法直觀看出其數值的. 一般也須要轉換成原碼在計算其數值.

若是對老師課上講的原碼、補碼和反碼沒搞明白的同窗,能夠好好看看小編寫的這篇文章,對你會幫助很大,對這方面有欠缺的同窗,能夠去小猿圈學習一下,乾貨免費知識,但願能學到更多。

相關文章
相關標籤/搜索