零有幾個源碼
❶ 二進制0 和-0源碼反碼補碼
用16位二進製表示時,
0的原碼、反碼和補碼,相同,都是:0000
0000
0000
0000。
-32768的原碼、反碼:都不存在。
-32768的補碼:1000
0000
0000
0000。
❷ 數字0的原碼為 B、 B
[+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 十進制(三)對於八進制
❸ +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。
(3)零有幾個源碼擴展閱讀
轉換方法
由於正數的原碼、補碼、反碼表示方法均相同,不需轉換。在此,僅以負數情況分析。
(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
0的原碼為:10000(-0),00000(+0)
+0的補碼和原碼相同,為00000
-0的補碼是在-0的原碼(10000)的基礎上,符號位不變,其它位按位取反再在低位加1(11111+1=00000),進而得到-0的補碼00000
所以補碼表示0隻有一種情況00000.而原碼則表示了兩次,分別為10000和00000.
希望可以幫到你,謝謝!
❺ 什麼的編碼有兩個零
0有+0和-0之分
+0的原碼(8位):0000_0000
反碼、補碼同。
-0的原碼(8位):1000_0000
反碼 :1111_1111
補碼 : 0000_0000
相比較起來,原碼和反碼都有2個表示0的編碼。補碼都是一樣的。
總之,正數的原碼、反碼、補碼一樣;
負數的原碼就是{符號位1,絕對值原碼},反碼等於符號位除外的各位取反,補碼等於反碼加1。
無符號數:最高位不用來表示正負,它沒有負數
所以答案是AB
❻ 源碼是什麼 為什麼它前面會有那麼多零 如果255要怎麼表示8位都是1啊
為了區分。多個二進制是表示一個范圍的數如果世界上只有一個數字,就不需要這么多二進製表示了。比如用8個二進製表示,也只能表示0~255如果要表示256以上,那麼8個二進制也不夠,還得增加,比如16個二進制數。另外,為了處理器處理方便,都是按找byte(8個二進制)或word(16個二進制)的倍數來增加的。
❼ 「在計算機中,原碼和反碼不能表示 -1。」這種說法是否正確,為什麼
「在計算機中,原碼和反碼不能表示 -1。」,這種說法不正確。源碼和反碼都能表示-1。
[-1]原= 1000 0001。
[-1] = [10000001]原 = [11111110]反。
(7)零有幾個源碼擴展閱讀:
計算機使用原碼和反碼的原因:
對於計算機, 加減乘數已經是最基礎的運算, 要設計的盡量簡單。計算機辨別"符號位"顯然會讓計算機的基礎電路設計變得十分復雜! 於是人們想出了將符號位也參與運算的方法.
根據運演算法則減去一個正數等於加上一個負數, 即: 1-1 = 1 + (-1) = 0 , 所以機器可以只有加法而沒有減法, 這樣計算機運算的設計就更簡單了。
於是人們開始探索 將符號位參與運算, 並且只保留加法的方法.。首先來看原碼:
計算十進制的表達式: 1-1=0
為了解決原碼做減法的問題, 出現了反碼:
1 - 1 = 1 + (-1) = [0000 0001]原+ [1000 0001]原= [0000 0001]反+ [1111 1110]反= [1111 1111]反= [1000 0000]原= -0
發現用反碼計算減法, 結果的真值部分是正確的. 而唯一的問題其實就出現在"0"這個特殊的數值上. 雖然人們理解上+0和-0是一樣的, 但是0帶符號是沒有任何意義的. 而且會有[0000 0000]原和[1000 0000]原兩個編碼表示0.
於是補碼的出現, 解決了0的符號以及兩個編碼的問題:
1-1 = 1 + (-1) = [0000 0001]原+ [1000 0001]原= [0000 0001]補+ [1111 1111]補= [0000 0000]補=[0000 0000]原
這樣0用[0000 0000]表示, 而以前出現問題的-0則不存在了.而且可以用[1000 0000]表示-128:
(-1) + (-127) = [1000 0001]原+ [1111 1111]原= [1111 1111]補+ [1000 0001]補= [1000 0000]補
-1-127的結果應該是-128, 在用補碼運算的結果中, [1000 0000]補就是-128. 但是注意因為實際上是使用以前的-0的補碼來表示-128, 所以-128並沒有原碼和反碼表示。
❽ -128的原碼有沒有
原碼,在計算機裡面是不存在的。
研究原碼干什麼?
原碼的范圍:-127~+127,其中含有兩個零。
原碼沒有用的。
輸入到計算機裡面,都是使用補碼。
原碼只是寫在紙上,其功能,也就是來求補碼。
但是,-128,還並不是用原碼求出來的。
參考一下:
http://hi..com/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d92cc986c2a1523bc75cc380.html
❾ 0 的原碼有幾個
0原碼是00000000 -0原碼是10000000 0反碼是00000000 -0反碼是11111111 0補碼是00000000