二進位制的負數如何算,二進位制的負數如何算?

2021-08-04 16:23:56 字數 5178 閱讀 4662

1樓:飛鷹

在二進位制碼中,採用最高位是符號位的方法來區分正負數,正數的符號位為0、負數的符號位為1。剩下的就是這個數的絕對值部分。通過將負數轉為二進位制原碼,再求其原百碼的反碼,最後求得的補碼即負數的二進位制表示結果。

比如整數-1。先取1的原碼:00000000 00000000 00000000 00000001,得反碼:

11111111 11111111 11111111 11111110,最後得補碼: 11111111 11111111 11111111 11111111,即-1在計算機裡用二進位制表示結果

2樓:匿名使用者

1.負數的加法:負數的加法計算方法與正數的加法方法一樣,只是在結果前加上負號就可以了。如:(-2)+(-3)=-(2+3)=-5

2.負數的減法:簡單的說就是,減去一個負數就是相當於加上那個數的正數。如:-2-(-3)=-2+3=3-2=1。或者:-3-(-2)=-3+2=2-3=-1

3.負數的乘法:運演算法則和正數的乘法一樣,只是要考慮符號問題。

若兩個數符號相同則結果為正數,若兩個數符號相反則結果為負數。

如:(-2)*(-3),兩個數都是負數,符號相同,所以結果為正數,也就是6

若:(-2)*3 或 2*(-3),兩個數符號不同,所以結果為負數,也就是-6.

4.負數的除法:方法與負數的乘法一樣,先按照兩個數都是正數做除法,然後在判斷符號。 若兩個數符號相同則結果為正數,若兩個數符號相反則結果為負數。

如:(-6)/(-2),兩個數都是負數,符號相同,所以結果為正數,也就是3

若:(-6)/2 或 6/(-2),兩個數符號不同,所以結果為負數,也就是-3. (-1)+(-2)= - (1+2)

(-1)-(-2)= -1 + 2=1 就是後面的兩個負號抵消了 減負等於加正

(-1)×(-2)=2 除法與乘法相同 重點是看一個式子裡有幾個負號

偶數個的就直接抵消 奇數個的就不變

3樓:匿名使用者

互為正負數的兩個十進位制整數的二進位制轉換原則雙向轉換均是先按位取反再加1,以-5為例:

(1)1111 1011,按位取反後得到0000 0100(2)再加1之後得到,0000 0101

(3)該數字對應的十進位制數為5

所以得到原數為-5

4樓:陳紅亮

絕對值求反加一

-100原碼:1000 0000 0110 0100-100反碼:1111 1111 1001 1011-100補碼:

1111 1111 1001 1100=1111 1111 1001 1011(反碼) +1

5樓:匿名使用者

一個二進位制,首位數是1的,就是負數。那麼到底負幾呢?

如1110 1001,減一取反等於0001 0111。

0001 0111等於23,那麼所求數就是-23了總結:【減一取反】

理論:負數在計算機裡是以補碼的形式存在的,因此還需要換算成原碼正數的補碼與原碼完全相同,負數的補碼是其反碼加1(即負數的原碼是【補碼-1取反】)

補碼-1=反碼 1110 1001-1=1110 1000反碼取反=原碼 1110 1000取反=1001 0111(最高位是符號位,取反的時候保持不變)

那麼1001 0111=-(16+4+2+1)=-23********************====位運算子~ 是按位取反

如~-5=4過程:

原始碼-5【取反+1=】補碼【~取反=】4

負數用二進位制怎麼表示呀?

6樓:匿名使用者

在二進位制碼中,為了區分正負數,採用最高位是符號位的方法來區分,專正數的符號位為0、負數屬的符號位為1。剩下的就是這個數的絕對值部分,可以採用原碼、反碼、補碼3種形式來表示絕對值部分。

原碼最簡單,也最好理解。原碼就是絕對值的二進位制數形式:例如+7的8位二進位制原碼是00000111,-7的8位二進位制原碼是10000111。

但對於二進位制運算而言,原碼的運算不夠方便,當兩個數相加時,先要判斷這兩個數的符號是否相同,符號不同的話,還要判斷哪一個數的絕對值更大。所以在計算機中,通常都是採用補碼形式。

正整數的補碼與原碼形式相同,例如+7的8位二進位制補碼是00000111;而負整數的補碼則可以通過下列方式得到:將這個負整數的絕對值求反加1,連同符號位1一起表示就可以了。例如-7的8位二進位制補碼:

將-7的絕對值7求反加1得1111001,連同符號位1一起就是11111001。

你也可以練習一下+13和-13的8位二進位制補碼:+13d=00001101,-13d=11110011。

7樓:孝渺何永怡

答案:1000000010000000是-128的補碼錶示覆,原碼和反碼能表制示的範圍是-127

~127,不能表示-128。8位二進位制的表示法的資料範圍:

原碼:-127

~127

反碼:-127

~127

補碼:-128

~127

8樓:匿名使用者

在計bai算機中,負數du以其正值的補碼形zhi式表達。

負數源資料不管dao符號的正值稱為原碼,對版其進行取反,取反後的權資料稱為反碼。比如原來資料為-5,先不管其符號,將原資料正值(二進位制)5為00000101,取反後的反碼為11111010.

對反碼加1.  11111010+1=11111011,此值即為-5的二進位制表示。

9樓:冷枯竹

-7的二進位制 1000 0111

-13的二進位制1000 1101

一個數你可以把它當成是正數, 也可以把它當成是負數, 就看你的需要了在有符號數中二進位制最高位是1的就是負數, 0就是正數

10樓:沙裡波特

舉個例子,

-7二進位制是多少?=====  -111。

-13二進位制是多少?===== -1101。

怎麼算得的?======= 除二取餘。

11樓:北極雪

用補碼copy來表示二進位制的負數。具體例項如下:1、首先,來個-5,把5轉化為二進位制位元組形式。

得到101,然後補零。2、這個時候,原碼就出來了。然後,取反(0的變成1,1的變成0。

)(一個整數按照絕對值大小轉換成的二進位制數,是為原碼。原碼就上面的:00000101。

)。3、得到了反碼,反碼是和原碼反著來的。然後,加一。

反碼加一叫補碼。4、補碼就是負數在計算機中的二進位制表示方法。那,11111011表示8位的-5,如果要表示16位的-5 ,在左邊添上8個1即可。

5、那,知道一個負數,求二進位制數的方法已經知道了,如果知道一個二進位制數,怎麼求其十進位制數呢(對負數)隨便來個負數的二進位制數。6、先減一,反著上面的方法來。上面最後是加一,那現在就減一。

7、取反。上面是取反了,這裡也取反。那,接下來就是計算了。

計算結果是13,那麼這個二進位制數就是:-13。8、那,接下來就是計算了。

計算結果是13,那麼這個二進位制數就是:-13。9、那,用計算器來驗證一下。

其實負數的:十進位制變二進位制:原碼--反碼--加一(補碼)。

二進位制變十進位制:減一--反碼--原碼。

二進位制補碼怎麼計算的

12樓: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,與上文一致。

二進位制如何表示負數啊負數用二進位制怎麼表示呀?

在二進位制碼中,採用最高位是符號位的方法來區分正負 數,正數的符號位為0 負數的符號位為1。剩下的就是這個數的絕對值部分。通過將負數轉為二進位制原碼,再求其原碼的反碼,最後求得的補碼即負數的二進位制表示結果。比如整數 1。先取1的原碼 00000000 00000000 00000000 00000...

二進位制數為什麼不是負數?二進位制中的負數怎麼表示

二進位制小數的位權都是2的負整數次冪,即階數為負數。例如二進位制小數,轉換成十進位制小數 二進位制數 二進位制數除法與十進位制數除法很類似,可先從被除數的最高位開始,將被除數 或中間餘數 與除數相比較,若被除數 或中間餘數 大於除數,則用被除數 或中間餘數 減去除數,商為1,並得相減之後的中間餘數,...

二進位制轉換16進位制二進位制轉換16進位制彙編

16進位制有數字0 9,還有a f,一共16個數碼。轉換的時候,先統一加上30h,然後要判斷是數字還是字母,數字的ascii碼和字母的ascii碼可不是一樣的哦。所以和3ah比較。如果是數字,不變 如果是字母,再加上7h 你的程式是用大寫字母表示,若是小寫字母,那應該再加上27h 數符在輸出時是按其...