回覆列表
-
1 # lokpa5575
-
2 # pzyyo24296
1、在計算機系統中,數值一律用補碼來表示(儲存)。 主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄。
2、補碼與原碼的轉換過程幾乎是相同的。
1、在計算機系統中,數值一律用補碼來表示(儲存)。 主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄。
2、補碼與原碼的轉換過程幾乎是相同的。
資料在電腦中用二進位制數表示。二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進位規則是“逢二進一”,借位規則是“借一當二”。二進位制數(binaries)是逢2進位的進位制,0、1是基本算符;計算機運算基礎採用二進位制。電腦的基礎是二進位制。在電腦還沒有發明之前,常用的進位制主要是十進位制(因為我們有十個手指,所以十進位制是比較合理的選擇,用手指可以表示十個數字,0的概念直到很久以後才出現,所以基本的阿拉伯數字應該是1-10而不是0-9)。電子計算機出現以後,使用電子管來表示十種狀態過於複雜,所以所有的電子計算機中只有兩種基本的狀態,開和關。也就是說,電子管的兩種狀態決定了以電子管為基礎的電子計算機採用二進位制來表示數字和資料。常用的進位制還有8進位制和16進位制,在電腦科學中,經常會用到16進位制,而十進位制的使用非常少,這是因為16進位制和二進位制有天然的聯絡:4個二進位制位可以表示從0到15的數字,這剛好是1個16進位制位可以表示的資料,也就是說,將二進位制轉換成16進位制只要每4位進行轉換就可以了。二進位制的“00101000”直接可以轉換成16進位制的“28”。位元組是電腦中的基本儲存單位,根據計算機字長的不同,字具有不同的位數,現代電腦的字長一般是32位的,也就是說,一個字的位數是32。位元組是8位的資料單元,一個位元組可以表示0-255的十進位制資料。對於32位字長的現代電腦,一個字等於4個位元組,對於早期的16位的電腦,一個字等於2個位元組。二進位制數的運算除了有四則運算外,還可以有邏輯運算。二進位制數下面分別予以介紹。二進位制數的四則運算二進位制數與十進位制數一樣,同樣可以進行加、減、乘、除四則運算。其演算法規則如下:加運算:0+0=0,0+1=1,1+0=1,1+1=10,即逢二進一;加法運算例項。(1)首先是最右數碼位相加。這裡加數和被加數的最後一位分別為“0”和“1”,根據加法原則可以知道,相加後為“1”。(2)再進行倒數第二位相加。這裡加數和被加數的倒數第二位都為“1”,根據加法口訣可以知道,相加後為“10”,此時把後面的“0”留下,而把第一位的“1”向高一位進“1”。(3)再進行倒數第三位相加。這裡加數和被加數的倒數第二位都為“0”,根據加法原則可以知道,本來結果應為“0”,但倒數第二位已向這位進“1”了,相當於要加“被加數”、“加數”和“進位”這三個數的這個數碼位,所以結果應為1。(4)最後最高位相加。這裡加數和被加數的最高位都為“1”,根據加法口訣可以知道,相加後為“10”。一位只能有一個數字,所以需要再向前進“1”,本身位留下“0”,這樣該位相加後就得到“0”,而新的最高位為“1”。減運算:和十進位制運演算法則相同,但不夠減時,需要向前一位借一作二。減法運算例項。首先最後一位向倒數第二位借“1”,相當於得到了(10)2,也就是相當於十進位制數中的2,用2減去1得1。(2)再計算倒數第二位,因為該位同樣為“0”,不能用0減去1,需要繼續向倒數第三位借“1”(同樣是借“1”當“2”),但因為它在上一步中已借給了最後一位“1”(此時是真實的“1”),則倒數第二位還有1,與減數“1”相減後得到“0”。(3)用同樣的方法倒數第三位要向它們的上一位借“1”(同樣是當“2”),但同樣已向它的下一位(倒數第二位)借給“1”(此時也是真實的“1”),所以最終得值也為“0”。(4)被減數的倒數第四位儘管與前面的幾位一樣,也為“0”,但它所對應的減數倒數第四位卻為“0”,而不是前面幾位中對應的“1”,它向它的高位(倒數第五位)借“1”(相當於“2”)後,在借給了倒數第四位“1”(真實的“1”)後,仍有“1”餘,1 –0=1,所以該位結果為“1”。(5)被減數的倒數第五位原來為“1”,但它借給了倒數第四位,所以最後為“0”,而此時減數的倒數第五位卻為“1”,這樣被減數需要繼續向它的高位(倒數第六位)借“1”(相當於“2”),2–1=1。(6)被減數的最後一位本來為“1”,可是借給倒數第五位後就為“0”了,而減數沒有這個位,這樣結果也就是被減數的相應位值大小,此處為“0”,我們不寫。在二進位制數的加、減法運算中一定要聯絡上十進位制數的加、減法運算方法,其實它們的道理是一樣的,也是一一對應的。在十進位制數的加法中,進“1”仍就當“1”,在二進位制數中也是進“1”當“1”。在十進位制數減法中我們向高位借“1”當“10”,在二進位制數中就是借“1”當“2”。而被借的數仍然只是減少了“1”,這與十進位制數一樣。乘運算:0×0=0,0×1=0,1×0=0,1×1=1,只有同時為“1”時結果才為“1”;把二進位制數中的“0”和“1”全部當成是十進位制數中的“0”和“1”即可。根據十進位制數中的乘法運算知道,任何數與“0”相乘所得的積均為“0”,這一點同樣適用於二進位制數的乘法運算。只有“1”與“1”相乘才等於“1”。乘法運算步驟:(1)首先是乘數的最低位與被乘數的所有位相乘,因為乘數的最低位為“0”,根據以上原則可以得出,它與被乘數1110的所有位相乘後的結果都為“0”。(2)再是乘數的倒數第二位與被乘數的所有位相乘,因為乘數的這一位為“1”,根據以上原則可以得出,它與被乘數1110的高三位相乘後的結果都為“1”,而於最低位相乘後的結果為“0”。(3)再是乘數的倒數第三位與被乘數的所有位相乘,同樣因為乘數的這一位為“1”,處理方法與結果都與上一步的倒數第二位一樣,不再贅述。(4)最後是乘數的最高位與被乘數的所有位相乘,因為乘數的這一位為“0”,所以與被乘數(1110)2的所有位相乘後的結果都為“0”。(5)然後再按照前面介紹的二進位制數加法原則對以上四步所得的結果按位相加(與十進位制數的乘法運算方法一樣),結果得到1110×110=1010100。這裡可以先把前面的有效數字先乘起來,然後,看被乘數和乘數末尾共有幾個零,就在得數末尾添幾個零。除運算:二進位制數只有兩個數(0,1),因此它的商是1或0,與十進位制運演算法則相同。除法運算例項。(1)首先用“1”作為商試一下,相當於用“1”乘以除數“110”,然後把所得到的各位再與被除數的前4位“1001”相減。按照減法運算規則可以算出,得到的餘數為“11”。(2)因為“11”比除數“110”小,不足以被除,所以需要把被除數里的1脫下來,合起來是“111”,此時的數就比除數“110”大了,可以繼續除了。同樣用“1”作為商去除,相當於用“1”去乘除數“110”,然後把所得的積與被除數中的前三位“111”相減。根據以上介紹的減法運算規則可以得到此步的餘數為“1”。(3)因為“1”遠比除數“110”小,把被除數里的1脫下來後合起來是“11”,仍不夠商1,所以此時需在商位置上用“0”作為商了。(4)然後把被除數上的0脫下來,得到“110”。110裡面有一個110,結果當然是用“1”作為商,用它乘以除數“110”後再與被除數相減,得到的餘數正好為“0”。證明這兩個數能夠整除。這樣一來,所得的商1101就是兩者相除的結果。希望我能幫助你解疑釋惑。