1樓:胖大熙
求負整數的補碼,將其原碼除符號位外的所有位取反(0變1,1變0,符號位為1不變)後加1。
同一個數字在不同的補碼錶示形式中是不同的。比如-15的補碼,在8位二進位制中是11110001,然而在16位二進位制補碼錶示中,就是1111111111110001。以下都使用8位2進位制來表示。
例子:求-5的補碼,過程如下:-5對應正數5(00000101)→所有位取反(11111010)→加1(11111011),所以-5的補碼是11111011。
數0的補碼錶示是唯一的。
[+0]補=[+0]反=[+0]原=00000000;[ -0]補=11111111+1=00000000。
2樓:匿名使用者
二進位制中:
(1)負數的補碼=反碼+1
(2)正數的原碼、反碼、補碼都是其本身。
比如:八位機器碼中,+1和-1的原碼、反碼、補碼的表示如下+1:0 00000001,0 00000001,0 00000001。
-1:1 00000001,1 11111110,1 11111111. (符號位用空格隔開以示區別)
3樓:沙裡波特
[y]補=2+y 這個是什麼意思?
這是負小數的補碼。
他們回答的,都不對。
他們回答的,都是整數的。
都是一本正經的,裝a什麼c。
4樓:康秦瑀
求二進位制負數的補碼的方法是:先求正數的補碼,之後取反加一即可;而正數不變,正數的原碼反碼補碼是一樣的.
計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的是十進位制,"正如亞里士多德早
就指出的那樣,今天十進位制的廣泛採用,只不過是我們絕大多數人生來具有10個手指頭這個解剖學事實的結果。儘管在歷史上手指計數(5,10進位制)的實踐要
比二或三進位制計數出現的晚。".為了能方便的與二進位制轉換,就使用了十六進位制(2
4)和八進位制1.數值有正負之分,計算機就用一個數的最高位存放符號(0為正,1為負).這就是機器數的原碼了
5樓:李宜寬
負數的補碼是負數,求補碼時,符號位(即第一位)是不改變的。
根據[-y]補=-[y]補,好像也推不出來啊, 反正[-y]補=-[y]補,這個很好理解的,。。。,是不是看錯了~~
二進位制負數的補碼的原理為什麼要用補碼的形式改更負
6樓:匿名使用者
1、在計算機系統中,數值一律用補碼來表示(儲存).
主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理.另外,兩個用補
碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄.
2、補碼與原碼的轉換過程幾乎是相同的.
數值的補碼錶示也分兩種情況:
(1)正數的補碼:與原碼相同.
例如,+9的補碼是00001001.
(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1.
例如,-7的補碼:因為是負數,則符號位為「1」,整個為10000111;其餘7位為-7的絕對值+7的原碼
0000111按位取反為1111000;再加1,所以-7的補碼是11111001.
7樓:沙裡波特
正確答案,可見:網頁連結。
二進位制負數的補碼
8樓:做而論道
計算機裡面,只有加法器,沒有減法器,所有的減法運算,都必須用加法進行。
即:減去某個數字(或者說加上某個負數)的運算,都應該研究如何用加法來完成。
模、補數
在日常生活當中,可以看到很多這樣的事情:
把某物體左轉 90 度,和右轉 270 度,在不考慮圈數的條件下,最終的效果是相同的;
把分針倒撥 20 分鐘,和正撥 40 分鐘,在不考慮時針的條件下,效果也是相同的;
把數字 87,減去 25,和加上 75,在不考慮百位數的條件下,效果也是相同的;
……。上述幾組數字,有這樣的關係:
90 + 270 = 360
20 + 40 = 60
25 + 75 = 100
式中的 360、60 和 100,就是「模」。
式中的 90 和 270、20 和 40,以及 25 和 75,就是一對對「互補」的數字。
知道了「模」,求某個數字的「補數」,就是輕而易舉的了:
如果模為 365,數字 120 的補數為:365 - 120 = 245。
用補數代替原數,可把減法轉變為加法。出現的進位就是模,此時的進位,就應該忽略不計。
二進位制數的模
前面說過的十進位制數 25 和 75,它們是 2 位數的運算,模是 100,即 1 的後面加上 2 個 0。
如果有 3 位數參加運算,模就是 1000,即 1 的後面加上 3 個 0。
這裡的 1000,是十進位制數的一千,可以寫成 10^3,即 10 的 3 次方。
推論:有多少位數參加運算,模就是在 1 的後面加上多少個 0。
對於二進位制數字,模也是這樣推算。
如果是 3 位二進位制數參加運算,模就是 1000,即 1 的後面加上 3 個 0;
那麼當 8 位二進位制數參加運算,模就是 1 0000 0000,即 1 的後面加上 8 個 0。
16 位二進位制數參加運算,模可就大了,是 1 的後面加上 16 個 0。
注意:這裡提到的 1、0,都是二進位制數。
8 位二進位制數的模可以按照十進位制寫成 2^8,即 256。
16 位數二進位制數的模,就是 2^16,按照十進位制,它就是 65536。
二進位制數的補碼
求二進位制數的補數,目的是往計算機裡面存放。
在計算機裡面,存放的數字什麼的,都稱為機器碼;那麼二進位制形式的補數,也就改稱為補碼了。
一般情況下,都是以 8 位二進位制數來討論補碼,少數也有用 16 位數的。
計算時加上正數,是不需要進行求取補數的;只有進行減法(或者加上負數),才需要對減數求補數。
補碼就是按照這個要求來定義的:正數不變,負數即用模減去絕對值。
已知一個數 x,其 8 位字長的補碼定義為:
/ x 0 <= x <= +127 ;正數和0的補碼,就是該數字本身
[x]補 = |
\ 2^8 -|x| -128 <= x < 0 ;負數的補碼,就是用 1 0000 0000,減去該數字的絕對值
例如 x = -126,其補碼為 1000 0010,計算方法如下:
1 0000 0000
- 0111 1110
-----------
1000 0010
可以看出,按照補碼的定義來求補碼,概念十分清晰,方法、步驟也是十分簡單的。
9樓:功誠蹉燕
求二進位制負數的補碼的方法是:先求正數的補碼,之後取反加一即可;而
專正數不變,正數的原碼屬
反碼補碼是一樣的.
計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的是十進位制,"正如亞里士多德早
就指出的那樣,今天十進位制的廣泛採用,只不過是我們絕大多數人生來具有10個手指頭這個解剖學事實的結果。儘管在歷史上手指計數(5,10進位制)的實踐要
比二或三進位制計數出現的晚。".為了能方便的與二進位制轉換,就使用了十六進位制(2
4)和八進位制1.數值有正負之分,計算機就用一個數的最高位存放符號(0為正,1為負).這就是機器數的原碼了
10樓:淚盈點心
1、在計算機系統中
抄,數值襲一律用補碼來表示(儲存)。
主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理。另外,兩個用補
碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄。
2、補碼與原碼的轉換過程幾乎是相同的。
數值的補碼錶示也分兩種情況:
(1)正數的補碼:與原碼相同。
例如,+9的補碼是00001001。
(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1。
例如,-7的補碼:因為是負數,則符號位為「1」,整個為10000111;其餘7位為-7的絕對值+7的原碼
0000111按位取反為1111000;再加1,所以-7的補碼是11111001。
11樓:燕實酆昭
二進位制抄中:
(1)負數的補碼=反碼+1
(2)正數的原碼、反碼、補碼都是其本身。
比如:八位機器碼中,+1和-1的原碼、反碼、補碼的表示如下+1:0
00000001,0
00000001,0
00000001。
-1:1
00000001,1
11111110,1
11111111.
(符號位用空格隔開以示區別)
12樓:沙裡波特
這個問題,不用討論計算機怎樣怎樣...。
人,就是這樣算的。
一個小孩,很小的,只會數內 100 個數。
能做加容法,還不會做減法。
那麼,減一,你就可以教他:加 99。
比如:26 - 1 = 25
26 + 99 = (1) 25
對這個小孩來說,結果,不是一樣嗎?
99,就是-1 的補數。
由此,就能推出,計算機用的補碼:
255,就是-1 的補碼;
254,就是-2 的補碼;
... ... 。
二進位制的負數都是補碼?
13樓:碧血玉葉花
1、在來計算機系統中源,數值一律用補碼來表示(儲存).
主要原因:使用補碼,可以將符號位和其它位統一處理;同時,減法也可按加法來處理.另外,兩個用補
碼錶示的數相加時,如果最高位(符號位)有進位,則進位被捨棄.
2、補碼與原碼的轉換過程幾乎是相同的.
數值的補碼錶示也分兩種情況:
(1)正數的補碼:與原碼相同.
例如,+9的補碼是00001001.
(2)負數的補碼:符號位為1,其餘位為該數絕對值的原碼按位取反;然後整個數加1.
例如,-7的補碼:因為是負數,則符號位為「1」,整個為10000111;其餘7位為-7的絕對值+7的原碼
0000111按位取反為1111000;再加1,所以-7的補碼是11111001.
二進位制補碼怎麼計算的
14樓:guxuecan劍
1、正數的補碼錶示:
正數的補碼 = 原碼
負數的補碼 = + or
= +
以十進位制整數+97和-97為例:
+97原碼 = 0110_0001b
+97補碼 = 0110_0001b
-97原碼 = 1110_0001b
-97補碼 = 1001_1111b
2、純小數的原碼:
純小數的原碼如何得到呢?方法有很多,在這裡提供一種較為便於筆算的方法。
以0.64為例,通過查閱可知其原碼為0.1010_0011_1101_0111b。
操作方法:
將0.64 * 2^n 得到x,其中n為預保留的小數點後位數(即認為n為小數之後的小數不重要),x為乘法結果的整數部分。
此處將n取16,得
x = 41943d = 1010_0011_1101_0111b
即0.64的二進位制表示在左移了16位後為1010_0011_1101_0111b,因此可以認為0.64d = 0.1010_0011_1101_0111b 與查詢結果一致。
再實驗n取12,得
x = 2621d = 1010_0011_1101b 即 0.64d = 0.1010_0011_1101b,在忽略12位小數之後的位數情況下,計算結果相同。
3、純小數的補碼:
純小數的補碼遵循的規則是:在得到小數的原始碼後,小數點前1位表示符號,從最低(右)位起,找到第一個「1」照寫,之後「見1寫0,見0寫1」。
以-0.64為例,其原碼為1.1010_0011_1101_0111b
則補碼為:1.0101_1100_0010_1001b
當然在硬體語言如verilog中二進位制表示時不可能帶有小數點(事實上不知道**可以帶小數點)。
4、一般帶小數的補碼
一般來說這種情況下先轉為整數運算比較方便
-97.64為例,經查詢其原碼為1110_0001.1010_0011_1101_0111b
筆算過程:
-97.64 * 2^16 = -6398935 = 1110_0001_1010_0011_1101_0111b,其中小數點在右數第16位,與查詢結果一致。
則其補碼為1001_1110_0101_1100_0010_1001b,在此採用 負數的補碼 = + 方法
5、補碼得到原碼:
方法:符號位不動,幅度值取反+1 or符號位不動,幅度值-1取反
-97.64補碼 = 1001_1110(.)0101_1100_0010_1001b
取反 = 1110_0001(.)1010_0011_1101_0110b
+1 = 1110_0001(.)1010_0011_1101_0111b 與查詢結果一致
6、補碼的拓展:
在運算時必要時要對二進位制補碼進行數位拓展,此時應將符號位向前拓展。
-5補碼 = 4'b1011 = 6'b11_1011
ps.原碼的拓展是將符號位提到最前面,然後在拓展位上部0.
-5原碼 = 4『b』1101 = 6'b10_0101,對其求補碼得6'b11_1011,與上文一致。
二進位制負數補碼轉為十進位制
沙裡波特 59 原碼是 1011 1011。59 補碼是 1100 0101 二進位制 197 十進位制 59 補碼是 1100 0101 二進位制 c5 16進位制 59 補碼是 1100 0101 二進位制 305 八進位制 這是用八位補碼錶示的,最高位表示為符號位,0代表是正數,1代表負數 5...
二進位制數補碼的計算問題,二進位制補碼怎麼計算的
十進位制數的每一位最多需要四位二進位制數才能表示,所以3的二進位制數本來是11,但是為了滿足四位,就需要在高位新增兩個0補全為四位,也就是變成了0011。這只是為了方便計算而這樣表示的,不影響任何數的大小。希望能夠幫到你哈。二進位制補碼怎麼計算的 06如何快速的將二進位制轉換成十進位制。二進位制計算...
二進位制的負數如何算,二進位制的負數如何算?
飛鷹 在二進位制碼中,採用最高位是符號位的方法來區分正負數,正數的符號位為0 負數的符號位為1。剩下的就是這個數的絕對值部分。通過將負數轉為二進位制原碼,再求其原百碼的反碼,最後求得的補碼即負數的二進位制表示結果。比如整數 1。先取1的原碼 00000000 00000000 00000000 00...