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,與上文一致。
二進位制的補碼多少位?8位二進位制補碼計算步驟是什麼
這個,可以自定義。最大的位數,取決於你的計算機,記憶體的大小。8位二進位制補碼計算步驟是什麼?正數 零的補碼,與其數值相同。負數的補碼,用 256 加上該數。補碼的計算步驟,與普通的二進位制計算步驟,完全相同。1 補碼是抄把減法用加法計算,採用進製丟的方法得到結果時應該補足的數。位二進位制補碼的計算...
二進位制轉十進位制演算法,十進位制轉二進位制演算法
我們在網路上經常遇到要ip轉為二進位制來劃分或彙總子網,所以要找一種最快速的十進位制轉二進位制的方法 這種演算法用除16來算,基於我們對16以內的二進位制很熟悉 朋友你也許也奇怪,除16不是算16進製制轉換的嗎?呵呵,下面看來我說.我們用d表示10進製,用b表示2進製 公式是a d 16 b 餘c....
二進位制小數如何轉化為十進位制,如,二進位制小數如何轉化為十進位制,如
毓人 0.101 2 1 2 0 2 1 2 10 0.5 0 2 1 2 10 0.5 2 1 2 10 0.25 1 2 10 1.25 2 10 0.625 10 生活如歌 0.101b 2 1 2 3 0.625 二m進製數與z十s進製數如何轉換 3 二v進製數 十l進製數 對於j較小j的二...