1樓:翦澎徭梅風
我給你說一下原碼·反碼·補碼·移碼之間的關係吧。
真值:現實中真實的數值。
機器數:計算機中用編碼表達的數值,包括原碼、反碼、補碼、移碼等。
1》原碼:保持原有的數值部分的形式不變,只將符號用二進位制**表示。0為正,1為負。
2》反碼:原碼數值部分各位取反,符號位:0為正,1為負。
3》補碼:方法1:原碼取反末尾加一,符號位:0為正,1為負。
方法2:從右到左遇見的第乙個1的位置開始,第乙個1位置右邊所有的數值位全部取反,符號位:0為正,1為負。
4》移碼:補碼的數值部分不變,符號取反,即得移碼。反之亦然。
例如:已知x=-1100101,求[x]補和[x]移。
x=-1100101
x]補=10011011
-只將符號位取反---x]移=00011011同理,已知移碼求原碼的話,一步一步倒著推:先由移碼。
-得補碼---再得原碼。
2樓:做而論道
移碼=補碼+偏移量。
根據不同的需要,偏移量,就有好多種。
符號取反,只是最簡單的一種,也是最沒啥用的一種。
在計算機中,數值都是以二進位制的反碼還是補碼還是原碼的形式參加算術運算的.
3樓:做而論道
計算機中,並沒有原碼和反碼。
在計算機,只是使用補碼,代表負數。
補碼,是乙個「代替負數」的正數。
使用了補碼之後,在計算機中就沒有負數了,同時,也就沒有了減法運算。
使用補碼的意義,就是:簡化計算機的硬體。
比如鐘錶,時針轉一圈,週期是 12 小時。
倒撥 3小時,可以用正撥 9小時代替。
9,就稱為-3 的補數。
計算方法:
對於分針,倒撥 x分,就可以用正撥 60-x代替。
如果,限定了 2 位 10 進製數 (0~99),週期就是 10^2 = 100。
那麼,減一,就可以用 +99 代替。
桐含悔 24-1 = 23
忽略進製,只取兩位數,這兩種演算法,結果就是相同的。
於是,99 就是 -1 的補數。
補數 = 負數 + 週期
求出了負數的補數,就可用加法,代替減法了。
-老賣---
計算機中使用二進位制,補數,就改稱為【補碼】。
常用的 8 位 2 進製是:0000 0000~1111 1111。
它們對應十進位制:0~255,計數週期是: 2^8 = 256。
那麼,-1,就可以用 255 = 1111 1111 代替。
所以:-1 的補碼,就是 1111 1111 = 255。
同理:-2 的補碼,就是 1111 1110 = 254。
繼續:-3 的補碼,就是 1111 1101 = 253。
最後:-128,補碼是 1000 0000 = 128。
計算公式:負數的補碼=這個負數 + 週期(2^n)
正數,必須直接運算,不可做任何轉換。
也有人說,正數本身就是補碼。
補碼的應用如: 7-3 = 4。
用八位補碼的計算過程如下:
3的補碼=
相加---得: (1)
捨棄進製,只保留八位,結果,就是正確的。
這就是:使用補碼,加法就代替了減法。
所以,在計算機中,有乙個加法器,就夠用了。
原碼和反碼,都沒有這種功能。
所以,在計算機中,根本就沒有它們。
從原碼反碼開始學局正習補碼,就不能理解【補碼的意義】。
學習原碼反碼,就是上了老外的當了。
4樓:貢齊九平松
儲存是補碼。運算也是補碼。
計算機計算補碼時按位取反要不要算上符號位
5樓:蔚天燦雨
1.對於原碼轉換為補碼是不算符號位的(我猜你問的就是這個)
不相信的話可以給你舉個例子證明一下:
不妨取乙個4-bit register,規定最高位為符號位,對於-1原碼表示為1001;
對於補碼,按位取反,末位+1
假設符號位參與取反,那麼補碼為0111(按位取反得0110,末位+1得0111)。
此時符號位不是1,而是0,代表正數,顯然錯誤。
其實對於補碼,最高位符號位對應的權值是-8,所以0111真正代表數字為。
假設符號位不參與取反,那麼符號位不參與運算,補碼為1111(按位取反得1110,末位+1得1111)。
結果為 -8*1 + 4*1 + 2*1 + 1*1 = 1
對於原碼,最高位權值是-1(所以常常理解為就是乙個負號),但是對於補碼最高位權值是-2^n(不僅僅是乙個負號)
2.對於補碼表示的數字求相反數(相反數仍以補碼形式表示),符號位是參與的。
舉個例子:2-bit register
1補碼表示為 11
求-1的相反數:每位都取反,末位+1得到-1相反數為01,即+1
如有錯誤,歡迎指出。
hitwh --levi
6樓:沙里波特
在計算機中,並沒有 " 計算補碼 " 時按位取反。這種事。
" 計算補碼 " 時按位取反。
--這是由「人工操作」的,和計算機毫無關係。
因為:計算機中的有符號數,都是用補碼存放的。
計算機中,只有補碼,並無原碼反碼。
計算機對補碼,進行加減運算時,是把全部的位,都當做資料,根本就不考慮什麼符號位。
符號位,原碼反碼,都是騙人的,在計算機裡面,根本就沒有這些東西。
7樓:匿名使用者
補碼計算機中的符號數有三種表示方法,即原碼、反碼和補碼。三種表示方法均有符號位和數值位兩部分,符號位都是用0表示「正」,用1表示「負」,而數值位,三種表示方法各不相同。
在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路。
原碼,補碼和反碼在計算機中的作用
8樓:沙里波特
在計算機中,只用補碼代表正負數,進行加減運算。
原碼和反碼,沒有任何用處。
原碼和反碼,在計算機中,也都不存在。
對於十進位制數,如果限定了兩位,就只有 100 個數字:0~99。
這時,"減一",就可以用「加 99」代替。
如: 27-1 = 26
忽略進製的 100,結果不就是相同的嗎。
那麼,99,就稱為:-1 的補數。
2 的補數,就是 98。
計算機中,用二進位制,代表數字,稱為:**。
八位二進位制:0000 0000~1111 1111。
按照十進位制,就是 0~255,共有 256 組**。
在計算機中,負數,是以補碼存放的。那麼:-1 的補碼,就是 255 (即:1111 1111)。
2 的補碼,就是 254 (即:1111 1110)。
128 的補碼,就是 128 (即:1000 0000)。
求負數的補碼,不難。 小學生,都能總結出公式。
對於正數,直接存放就可以,做運算時,也不用進行轉換。
利用補碼,就可以:只用乙個加法器,也能做減法了。
這就可以簡化硬體。
而原碼和反碼,就不必關心了。
用原碼或反碼做運算,根本就不能得出正確的結果。
因此,在計算機中,根本就沒有原碼和反碼。
9樓:謬賜撒瑾
引入原碼。
反碼和補碼的目的就是為了解決減法問題,因為計算機cpu的運算器中只有加法器,要把減法轉化成加法來計算。
舉個例子,a表示十進位制數「+16」,b表示十進位制數「-19」,把這兩個數的原碼直接相加,得:
a=+16a)原=00010000
b=-19b)原=10010011
其結果符號位為1是負數,其數值位為100011,即等於十進位制數「-35」,這顯然是錯的結果。
再比如,十進位制數「+16」與「+19」的原碼直接相減,得:
結果為「-125」,這又是錯的。
但是引入補碼後,加減法都可以用加法來實現,如「-16+11」的運算:
16的補碼。
11的補碼。
5的補碼。如果是「-16-11」,那麼就轉化為加法運算「-16+(-11)」
16的補碼。
11的補碼。
27的補碼。
在字長為8位的系統中,最高位所產生的進製被自然丟棄,運算結果的機器數為11100101,是-27的補碼形式,結果正確。
順便告訴你一些其它的東西:
1.二進位制數中,兩數的補碼之和等於兩數和的補碼。
2.補碼=反碼+1
3.反碼=原碼除符號位外其它數值取反(即該數的絕對值取反),即「0」變「1」,「1」變「0」。
4.任何正數的原碼。
反碼補碼的形式完全相同(即都是自身,不變)
5.在計算機中,有符號的數都是採用補碼來表示的。
6.計算的時候,符號位也參與運算。
計算機組成原理為何補碼比原碼,反碼能多表示乙個數,在乙個就是符號位的,小弟快被搞暈了!
10樓:沙里波特
自然界,只有乙個零,而原碼和反碼中,卻都有兩個零,顯然是不合理的。
補碼,就沒有這個毛病,這才是正確的表示方法。
所以,計算機中,只是使用補碼,根本就不用原碼反碼。
既然,它們都不存在,還學它們幹嘛呢?
討論來討論去,都是毫無意義的。
11樓:程式猿的自我修養
0的反碼和原碼被表示了兩次,而0的補碼只表示了一次。
0 原碼00000 反碼00000 補碼00000 -0原碼10000 反碼11111 補碼00000
當為純整數的時候,補碼比原碼能多表示乙個最負負的數-2^n (如:10000表示-16)
純小數時,補碼可以多表示乙個-1(-1的補碼為而在原碼中-1是不可以被表示出來的。
所以補碼可以比原碼,反碼多表示乙個數。。。
符號位,在原碼取反的時候符號位不變。
另外補碼反碼的符號位可以和數值位一起參與運算。
應該就這些了。。
12樓:匿名使用者
反碼,原始碼 0被表示了兩次。
13樓:匿名使用者
去 看看唐朔飛的書吧 裡面講得很詳細 不要急 組成是有些麻煩的。
請問計算機中補碼,原碼,反碼,移碼的定義以及各自的作用是什麼,本人程式設計新手,講得通俗易懂一點
14樓:宿夏青有華
上面那個是原碼,反碼就是把上面的1變0,0變1,補碼就是在反碼後在加上1.
移碼就是整個的移位,你想移幾位就移幾位,比如110移後為100。這是右移,移動沒的就補上0
15樓:問工嶽熠
變程式設計的話,不需要多深的理解這幾個名詞的意思,這幾個算屬於計算機組成原理的範疇。這些都是資料的的二進位制形式的不同表示法,一般計算機中的資料多用補碼表示,使用補碼能夠簡化運算器的設計,原碼就是資料的原二進位制資料,補碼,反碼是相對於原碼來說的,移碼多用於浮點數的階符。
16樓:沙里波特
在電子計算機中,並沒有任何數字,只有「高電平、低電平」。
為了簡單,就用」來代表,則稱為「**」。
人類所用的數字 0,在八位計算機中,就用:0000 0000 代表。
數字 1,就用 0000 0000 + 1 = 0000 0001 來代表。
數字 2,就用 0000 0001 + 1 = 0000 0010 來代表。
數字-1,就用 0000 0000-1 = 1111 1111 = 255(十進位制)來代表。
數字-2,就用 1111 1111-1 = 1111 1110 = 254(十進位制) 來代表。
這些,就是補碼。
補碼的定義式:
零和正數的補碼=該數本身
負數的補碼=2 的n 次方+該負數
原碼和反碼,都是早期參考用的,在現在計算機中,根本就不用原碼反碼。
移碼,只是用在特定的場合。極少應用,不必關心。
計算機組成原理,計算機組成原理是什麼?
該控存共有 2的9次 方個單元,每個單元48位微位址段位數為 9 位 控制微程式轉移的的條件共有4個,採用用斷定方式,因此判斷測試標誌為 4 位 操作控制欄位為 48 9 4 35 位 3位址指令15條 操作碼長4bit,位址碼共12bit。操作碼取值範圍0000 1110。2位址指令14條 操作碼...
計算機組成原理怎麼學,計算機組成原理學什麼
估計組成原理首先要學好利潤在裡面基礎紮實的基礎上然後打十件進行時間學習。計算機組成原理學什麼 不太難學,只是有點抽象。有電路,有演算法 有定址法式,還有快取記憶體等等,只要有點耐心一定沒有問題的,祝君好運。額 不好意思,上次是同學用我的電腦時替我答的 其實這科目的確很難,內容繁雜,我以前學的時候上課...
計算機組成原理試題,計算機組成原理期末考試試題及答案
文庫精選 內容來自使用者 jreey祺 1 選擇題 1 完整的計算機系統應包括 da.運算器 儲存器和控制器b.外部裝置和主機c.主機和實用程式d.配套的硬體裝置和軟體系統2 計算機系統中的儲存器系統是指 da.ram儲存器b.rom儲存器 c.主儲存器d.主儲存器和外儲存器 3 馮 諾依曼機工作方...