零的源碼是
『壹』 +0或者-0的源碼、反碼、補碼
答案:
0的源碼、反碼、補碼均為0。
解釋:
在計算機中,整數使用二進制形式表示,而源碼、反碼、補碼是二進制數的不同表示方法,尤其在涉及有符號整數的表示時。
對於數字0來說:
1. 源碼:即數字原本的二進制形式。對於非負數,源碼就是其本身的二進製表示。0的源碼就是0000。
2. 反碼:在表示負數時,反碼是對源碼取反,但對於正數或零,其反碼與其源碼相同。因此,0的反碼仍然是0。
3. 補碼:補碼是計算機中最常用的編碼方式,用於表示正數和負數。對於正數和零,其補碼與源碼和反碼相同。因此,數字0的補碼也是0。
綜上所述,+0或-0在二進制中的源碼、反碼、補碼均為全零的二進制數表示形式。這種設計不僅使正數和零的表示簡單直觀,還使得計算機在進行運算時更加高效和方便處理各種數學運算和邏輯操作。
『貳』 +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。
(2)零的源碼是擴展閱讀
轉換方法
由於正數的原碼、補碼、反碼表示方法均相同,不需轉換。在此,僅以負數情況分析。
(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 原碼(符號位不變,數值位取反)
『叄』 +0或者-0的源碼、反碼、補碼分別是什麼補碼是一樣的嗎
整數(正整數、負整數、零),是以各種代碼,存入計算機的。
要知道,天下,只有一個零。
零,既不是正數,也不是負數。這可是小學的知識。
但是,計算機磚家,硬在零上強加了一個符號位!
於是,在原碼反碼中,就都為一個零,編造了正負兩個代碼。
零的原碼,有兩個:0000 0000、1000 0000。
反碼,也是兩個:0000 0000、1111 1111。
這些磚家,這就是要「上天」哪!
-------------------
原碼和反碼,都是重復定義了「零的編碼」,這就造成了混亂。
而且,零多佔用一組代碼,那麼,所能表示的數字,必然就少一個。
因此,八位的原碼反碼,都不能表示-128。
這就導致了:【原碼和反碼,計算機都無法使用】。
所以,在計算機系統中,數值,一律採用補碼來表示和存儲。
-------------------
補碼的理論,來源於數學的規律,並非是人為的胡編亂造。
0 的八位補碼,只有一個,就是:0000 0000。
零,在補碼中,只用唯一的一組代碼來表示,這就不會產生混亂。
--------------------
求補碼,書上介紹的方法,就是:取反加一。
但是,原碼反碼中,都是沒有 0 和-128。
(雖然原碼反碼都有 +0 和-0,但是它們畢竟不是 0。)
誰再想用「取反加一」,就要 Duang、Duang 的碰壁了。
--------------------
那麼,0 和-128 的補碼,都是怎麼求出來的?
補碼,有自己的定義式,與原碼反碼,並無關系。
這定義式,是由數學理論推導出來的,要比胡說八道的「取反加一」更准確嚴密。
當 X >= 0: [ X ]補碼 = X;
當 X < 0: [ X ]補碼 = X + 2^n, n 是補碼的位數。
按照定義式,0 和-128 的八位補碼,都可以求出來了。
[ 0 ]補碼 = 0000 0000。
[-128]補碼 = -128 + 2^8 = 128 = 1000 0000 (二進制)。
--------------------
如果按照「取反加一」,零的補碼,也將是「負零的反碼+1」。
那麼,[-0 ]補碼,就是:0000 0000!
發現有點詭異呀?
-0,不是負數嗎?其補碼的符號位。怎麼是(0)正的!
哪位計算機磚家來解釋解釋。。。
『肆』 +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。
(4)零的源碼是擴展閱讀
轉換方法
由於正數的原碼、補碼、反碼表示方法均相同,不需轉換。在此,僅以負數情況分析。
(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 原碼(符號位不變,數值位取反)
『伍』 什麼的編碼有兩個零
0有+0和-0之分
+0的原碼(8位):0000_0000
反碼、補碼同。
-0的原碼(8位):1000_0000
反碼 :1111_1111
補碼 : 0000_0000
相比較起來,原碼和反碼都有2個表示0的編碼。補碼都是一樣的。
總之,正數的原碼、反碼、補碼一樣;
負數的原碼就是{符號位1,絕對值原碼},反碼等於符號位除外的各位取反,補碼等於反碼加1。
無符號數:最高位不用來表示正負,它沒有負數
所以答案是AB
『陸』 源碼-反碼-補碼 的轉換規則
正數的原碼,補碼,反碼都相同,都等於它本身
負數的補碼是:符號位為1,其餘各位求反,末位加1
反碼是:符號位為1,其餘各位求反,但末位不加1
也就是說,反碼末位加上1就是補碼