導航:首頁 > 源碼編譯 > 負數的符號源碼

負數的符號源碼

發布時間:2025-03-01 18:53:30

Ⅰ +0或者-0的源碼、反碼、補碼

[+0]原碼=0000 0000, [-0]原碼=1000 0000

[+0]反碼=0000 0000, [-0]反碼=1111 1111

[+0]補碼=0000 0000, [-0]補碼=0000 0000

補碼沒有正0與負0之分。正數的反碼、補碼和其源碼相同,負數的反碼是其源碼,除符號位外其他位取反負數的補碼是取其反碼後加1。

詳細釋義:

所謂原碼就是二進制定點表示法,即最高位為符號位,「0」表示正,「1」表示負,其餘位表示數值的大小。

(一)反碼表示法規定:

1、正數的反碼與其原碼相同;

2、負數的反碼是對正數逐位取反,符號位保持為1;

(二)對於二進制原碼10010求反碼:

((10010)原)反=對正數(00010)原含符號位取反= 反碼11101 (10010,1為符號碼,故為負)

(11101) 二進制= -2 十進制

(三)對於八進制:

舉例 某linux平台設置了默認的目錄許可權為755(rwxr-xr-x),八進製表示為0755,那麼,umask是許可權位755的反碼,計算得到umask為0022的過程如下:

原碼0755= 反碼 0022 (逐位解釋:0為符號位,0為7-7,2為7-5,2為7-5)

(四)補碼表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

(1)負數的符號源碼擴展閱讀

轉換方法

由於正數的原碼、補碼、反碼表示方法均相同,不需轉換。在此,僅以負數情況分析。

(1) 已知原碼,求補碼。

例:已知某數X的原碼為10110100B,試求X的補碼和反碼。

解:由[X]原=10110100B知,X為負數。求其反碼時,符號位不變,數值部分按位求反;求其補碼時,再在其反碼的末位加1。

1 0 1 1 0 1 0 0 原碼

1 1 0 0 1 0 1 1 反碼,符號位不變,數值位取反

1 +1

1 1 0 0 1 1 00 補碼

故:[X]補=11001100B,[X]反=11001011B。

(2) 已知補碼,求原碼。

分析:按照求負數補碼的逆過程,數值部分應是最低位減1,然後取反。但是對二進制數來說,先減1後取反和先取反後加1得到的結果是一樣的,故仍可採用取反加1 有方法。

例:已知某數X的補碼11101110B,試求其原碼。

解:由[X]補=11101110B知,X為負數。

採用逆推法

1 1 1 0 1 1 1 0 補碼

1 1 1 0 1 1 0 1 反碼(末位減1)

1 0 0 1 0 0 1 0 原碼(符號位不變,數值位取反)

Ⅱ 負數的原碼、反碼、補碼怎麼表示

以一個位元組表示的話,-6的原碼是10000110,反碼是11111001,補碼是11111010。

首先,6的原碼、反碼、補碼相同,即都為0000 0110。

計算機拿到6的補碼,即0000 0110。

對6的補碼進行「~」計算(按位取反),得到1111 1001。

結果已經得到了,只不過是一個補碼形式,所以接下來要把補碼轉換成原碼(因為這個結果很明顯是個負數,所以按照負數的補碼轉換成原碼的公式來),由上述公式得到原碼為:1000 0111。

已經得到結果的二進制,將二進制轉換成十進制,得到-7。

正數的原碼、反碼、補碼相同。

負數的反碼:原碼除符號位外按位取反。

負數的補碼:反碼+1。在計算機中,數值一律用補碼來表示存儲。

負數的補碼轉換成原碼:除符號位外按位取反、+1。

對正數取反的方法:按位取反、取補碼(因為正數的原碼補碼反碼相同,所以省略了第一步取補碼)。

對負數取反的方法:取補碼、按位取反(因為負數按位取反後肯定是正數,正數的三碼相同,所以省略最後一步取補碼)。

閱讀全文

與負數的符號源碼相關的資料

熱點內容
做Ug編程需要有加工中心基礎嗎 瀏覽:681
android英語詞典 瀏覽:6
耳機有一邊連不上怎麼辦安卓 瀏覽:155
安卓怎麼玩正版孤膽車神 瀏覽:887
不做程序員還能做什麼 瀏覽:688
excel條件命令 瀏覽:404
autojs源文件加密 瀏覽:183
49演算法虛歲年齡怎麼算 瀏覽:547
qq發圖片壓縮 瀏覽:948
期貨行情手機app編程 瀏覽:53
中山緯創一廠做伺服器是什麼 瀏覽:28
python如何求字典里值的和 瀏覽:287
標准日本語pdf高清版 瀏覽:837
ide導出的二進制編譯文件 瀏覽:969
程序員會引起頸椎病嗎 瀏覽:63
cuda文件編譯 瀏覽:3
為什麼伺服器費用這么高 瀏覽:977
編譯錯誤什麼原因 瀏覽:233
人民文學pdf下載 瀏覽:303
進外代理伺服器地址 瀏覽:979