當前位置:首頁 » 操作系統 » 源碼怎麼算

源碼怎麼算

發布時間: 2022-04-30 10:16:15

『壹』 知道 補碼,如何 計算 原碼

兩種計算方法:

演算法1: 補碼=原碼取反再加1的逆運算
10010110是補碼,應先減去1變為反碼,得10010101;
由反碼取得源碼即除符號位外其他為按位取反,得11101010,即十進制數的-106

演算法2:負數補碼速演算法,由最低位(右)向高位(左)查找到第一個1與符號位之間的所有數字按位取反的逆運算
10010110是補碼,符號位與最後一個1之間的所有數字按位取反,得11101010

兩種演算法得出同樣結果

『貳』 C語言中,什麼是補碼、源碼、反碼分別怎樣計算

一、原碼

求原碼:X≥0,則符號位為0,其餘照抄;
X≤0,則符號位為1,其餘照抄。
【例1】X=+1001001 [X]原 = 01001001
【例2】X=-1001001 [X]原 = 11001001

二、反碼
求反碼:若X≥0,符號位為0,其餘照抄;
若X≤0,符號位為1,其餘按位取反。
【例3】X=+1001001 [X]反 = 01001001
【例4】X=-1001001 [X]反 = 10110110

三、補碼
求補碼:若X≥0,符號位為0,其餘照抄;
若X≤0,符號位為1,其餘取反後,最低位加1。
【例5】X=+1001001 [X]補 = 01001001
【例6】X=-1001001 [X]補 = 10110111

『叄』 計算機中補碼為10111010,怎麼計算求源碼

源碼→補碼:除符號位外各位取反再+1,那反之,知道補碼求源碼,只需符號位外各位-1再取反嘍。以此題為例,10111010-1=10111001,再取反得11000110,所以源碼即使11000110。

『肆』 計算機源碼,反碼,補碼之間怎麼計算

1、正整數的原碼、反碼、補碼完全一樣,即符號位固定為0,數值位相同。

2、負整數的符號位固定為1,由原碼變為補碼時,規則如下:原碼符號位1不變,整數的每一位二進制數位求反,得到反碼;反碼符號位1不變,反碼數值位最低位加1,得到補碼。

3、例如正整數的原碼為01110110,則反碼和補碼也為01110110;負整數的原碼為11110110,反碼為10001001,補碼為11110111。

拓展資料:

1、反碼是數值存儲的一種,多應用於系統環境設置,如linux平台的目錄和文件的默認許可權的設置umask,就是使用反碼原理。在計算機內,定點數有3種表示法:原碼、反碼和補碼。

2、在計算機系統中,數值一律用補碼來表示(存儲)。 主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補 碼表示的數相加時,如果最高位(符號位)有進位,則進位被舍棄。

『伍』 已知某數的二進制原碼 怎麼算他的反碼和補碼怎麼算

首先你得區分這個二進制書是帶符號位的還是不帶符號位的。
不帶符號位的:反碼就是將其原碼按位取反,比如「1000」反碼:「0111」;補碼是其本身。
帶符號位的:反碼就是其符號位不變,其他位按位取反。比如「10000000」
反碼:「11111111」;補碼就是反碼再加一。反碼「11111111」
補碼「10000000」。

『陸』 一個數的原碼,反碼,補碼怎麼算

計算機中的存儲系統都是用2進制儲存的,對我們輸入的每一個信息它都會自動轉變成二進制的形式,而二進制在存儲的時候就會用到原碼,反碼和補碼例如:輸入25原碼是:0000000000011001反碼: 1111111111100110 補碼: 1111111111100111

數值在計算機中表示形式為機器數,計算機只能識別0和1,使用的是二進制,而在日常生活中人們使用的是十進制,"正如亞里士多德早就指出的那樣,今天十進制的廣泛採用,只不過我們絕大多數人生來具有10個手指頭這個解剖學事實的結果.盡管在歷史上手指計數(5,10進制)的實踐要比二或三進制計數出現的晚. "(摘自<<數學發展史>>有空大家可以看看哦~,很有意思的).為了能方便的與二進制轉換,就使用了十六進制(2 4)和八進制(23).下面進入正題.

數值有正負之分,計算機就用一個數的最高位存放符號(0為正,1為負).這就是機器數的原碼了.假設機器能處理的位數為8.即字長為1byte,原碼能表示數值的范圍為

(-127~-0 +0~127)共256個.

有了數值的表示方法就可以對數進行算術運算.但是很快就發現用帶符號位的原碼進行乘除運算時結果正確,而在加減運算的時候就出現了問題,如下: 假設字長為8bits

( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10

(00000001)原 + (10000001)原 = (10000010)原 = ( -2 ) 顯然不正確.

因為在兩個整數的加法運算中是沒有問題的,於是就發現問題出現在帶符號位的負數身上,對除符號位外的其餘各位逐位取反就產生了反碼.反碼的取值空間和原碼相同且一一對應. 下面是反碼的減法運算:

( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10

(00000001) 反+ (11111110)反 = (11111111)反 = ( -0 ) 有問題.

( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = ( -1 )10

(00000001) 反+ (11111101)反 = (11111110)反 = ( -1 ) 正確

問題出現在(+0)和(-0)上,在人們的計算概念中零是沒有正負之分的.(印度人首先將零作為標記並放入運算之中,包含有零號的印度數學和十進制計數對人類文明的貢獻極大).

於是就引入了補碼概念. 負數的補碼就是對反碼加一,而正數不變,正數的原碼反碼補碼是一樣的.在補碼中用(-128)代替了(-0),所以補碼的表示範圍為:

(-128~0~127)共256個.

注意:(-128)沒有相對應的原碼和反碼, (-128) = (10000000) 補碼的加減運算如下:

( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10

(00000001)補 + (11111111)補 = (00000000)補 = ( 0 ) 正確

( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = ( -1 )10

(00000001) 補+ (11111110) 補= (11111111)補 = ( -1 ) 正確

所以補碼的設計目的是:

⑴使符號位能與有效值部分一起參加運算,從而簡化運算規則.

⑵使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計

所有這些轉換都是在計算機的最底層進行的,而在我們使用的匯編、C等其他高級語言中使用的都是原碼

『柒』 計算機原碼反碼補碼怎麼算

計算機原碼反碼補碼計算方法:

1、原碼

原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值。比如如果是8位二進制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

第一位是符號位. 因為第一位是符號位, 所以8位二進制數的取值范圍就是:[1111 1111 , 0111 1111]

即[-127 , 127]

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

2、反碼

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

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

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

可見如果一個反碼表示的是負數,人腦無法直觀地看出來它的數值。通常要將其轉換成原碼再計算。

3、補碼

補碼的表示方法是:正數的補碼就是其本身。負數的補碼是在其原碼的基礎上,符號位不變,其餘各位取反,最後+1。(即在反碼的基礎上+1)。

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

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

對於負數,補碼表示方式也是人腦無法直觀看出其數值的。通常也需要轉換成原碼在計算其數值。

(7)源碼怎麼算擴展閱讀:

原碼,反碼和補碼是完全不同的。既然原碼才是被人腦直接識別並用於計算表示方式,為何還會有反碼和補碼呢?

首先,因為人腦可以知道第一位是符號位,在計算的時候我們會根據符號位,選擇對真值區域的加減。但是對於計算機,加減乘數已經是最基礎的運算,要設計的盡量簡單。計算機辨別"符號位"顯然會讓計算機的基礎電路設計變得十分復雜。於是人們想出了將符號位也參與運算的方法。我們知道,根據運演算法則減去一個正數等於加上一個負數,即: 1-1 = 1 + (-1) = 0 , 所以機器可以只有加法而沒有減法,這樣計算機運算的設計就更簡單了。

於是人們開始探索將符號位參與運算,並且只保留加法的方法。

『捌』 原碼是怎麼算

原碼:在數值前直接加一符號位的表示法。

例如: 符號位=數值位

[+7]原=0 0000111 B

[-7]原=1 0000111 B

注意:a. 數0的原碼有兩種形式:

[+0]原=00000000B [-0]原=10000000B

b. 8位二進制原碼的表示範圍:-127~+127

編碼方式

原碼是有符號數的最簡單的編碼方式,便於輸入輸出,但作為代碼加減運算時較為復雜。

一個字長為n的機器數能表示不同的數字的個數是固定的2^n個,n=8時2^n=256;用來表示有符號數,數的范圍就是 -2^(n-1)-1 ~ 2^(n-1)-1,n=8時,這個范圍就是 -127 ~ +127。

但是在不需要考慮數的正負時,就不需要用一位來表示符號位,n位機器數全部用來表示是數值,這時表示數的范圍就是0~2^n-1,n=8時這個范圍就是0~255。

『玖』 補碼、原碼、反碼怎麼運算

原碼, 反碼和補碼的概念.對於一個數, 計算機要使用一定的編碼方式進行存儲. 原碼, 反碼, 補碼是機器存儲一個具體數字的編碼方式。原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值。反碼就是正數的反碼是其本身,負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反。補碼就是正數的補碼就是其本身,負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反。

1. 原碼

原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其餘位表示值. 比如如果是8位二進制:

[+1]原= 0000 0001

[-1]原= 1000 0001

第一位是符號位. 因為第一位是符號位, 所以8位二進制數的取值范圍就是:

[1111 1111 , 0111 1111]

[-127 , 127]

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

2. 反碼

反碼的表示方法是:

正數的反碼是其本身

負數的反碼是在其原碼的基礎上, 符號位不變,其餘各個位取反。

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

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

可見如果一個反碼表示的是負數, 人腦無法直觀的看出來它的數值. 通常要將其轉換成原碼再計算。

3. 補碼

補碼的表示方法是:

正數的補碼就是其本身

負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1)

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

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

對於負數,補碼表示方式也是人腦無法直觀看出其數值的。通常也需要轉換成原碼在計算其數值。

熱點內容
怎麼用電腦開mc伺服器 發布:2024-10-05 09:25:01 瀏覽:408
linux目錄亂碼 發布:2024-10-05 09:24:24 瀏覽:171
歐姆龍plc有密碼如何傳送 發布:2024-10-05 09:24:24 瀏覽:336
安卓11如何隱藏圖標 發布:2024-10-05 09:11:32 瀏覽:702
唐山壹編程 發布:2024-10-05 08:48:07 瀏覽:812
廣東gps時鍾伺服器雲主機 發布:2024-10-05 08:27:31 瀏覽:755
超級訪問沙溢 發布:2024-10-05 08:26:13 瀏覽:227
php刪除數組空 發布:2024-10-05 08:15:21 瀏覽:467
100平小型超市如何配置 發布:2024-10-05 08:10:56 瀏覽:92
sql語句刪除多表 發布:2024-10-05 08:10:55 瀏覽:819