計算機中的二進位制位都是以有符號的補碼形式儲存,這是什麼意思,該怎樣理解呢

2022-07-07 16:37:12 字數 5479 閱讀 6663

1樓:匿名使用者

是說帶符號的有理數是以補碼的形式儲存的,如+5,表示成0 0000101,最高位的0表示正號,而-5表示成 1 1111011,最高的1表示負號,其餘位為數值,但是按補碼形式計算出來的。但不是所有的二進位制數都是有符號的補碼,還有不帶符號的數,同樣的數0 0000101,是表示5,但1 1111011卻是251了。還有一類數是ascii碼,也是用二進數表示的,所以,同樣的二進位制數,就看表示的是什麼數了,其意義是不同的。

2樓:做而論道

現在的計算機中,都是高、低電平,是電壓訊號。

但是,通常是用二進位制數,來表示。

這些二進位制數,有些人,就把它們,想像成補碼,用來代表有符號數。

其實,並非所有的人,都是這麼想的。

比如:mov al, 3

add al, -125

結果,al = 1000 0110b。

你可以把它理解成-122,也可以認為是134。

------

就是說,計算機中,都是二進位制數,這是肯定的。

是不是補碼 ?這就要看《人》了。

誰願意說是補碼,就由他們說去,不用跟他們較真。

其實,絕大多數,都不是補碼。

3樓:沙里波特

各種數字,存入計算機中,肯定都是二進位制的。

通常,以八位二進位制,作為乙個計算單位,稱為乙個位元組。

這乙個位元組,共有 256 種組合:0000 0000~1111 1111。

用十進位制表示,就是 0~255。

這種說法,就是儲存了【無符號數】

這 0~255 也可以說是【有符號數】

其中 0~127 是正數,128~255 則代表負數-128~-1。

這就是以補碼形式儲存了【有符號數】。

那麼,這 0~255,到底是無符號數,還是有符號數?

誰存的,誰才能知道。

二進位制數的補碼是什麼意思?

4樓:匿名使用者

二進位制補碼 數值在計算機中表示形式為機器數,計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的是十進位制,"正如亞里斯多德早就指出的那樣,今天十進位制的廣泛採用,只不過我們絕大多數人生來具有10個手指頭這個解剖學事實的結果.儘管在歷史上手指計數(5,10進製)的實踐要比二或三進製計數出現的晚."(摘自《數學發展史》有空大家可以看看哦~,很有意思的).

為了能方便的與二進位制轉換,就使用了十六進製制(2 4)和八進位制

1.數值有正負之分,計算機就用乙個數的最高位存放符號(0為正,1為負).這就是機器數的原碼了.假設機器能處理的位數為8.即字長為1byte,原碼能表示數值的範圍為

(-127~-0 +0~127)共256個.

i.有了數值的表示方法就可以對數進行算術運算.但是很快就發現用帶符號位的原碼進行乘除運算時結果正確,而在加減運算的時候就出現了問題,如下: 假設字長為8bits

( 1 )10- ( 1 )10= ( 1 )10+ ( -1 )10= ( 0 )10

(00000001)原+ (10000001)原= (10000010)原= ( -2 )顯然不正確.

ii.因為在兩個整數的加法運算中是沒有問題的,於是就發現問題出現在帶符號位的負數身上,對除符號位外的其餘各位逐位取反就產生了反碼.反碼的取值空間和原碼相同且一一對應.

下面是反碼的減法運算:

( 1 )10-( 1 )10= ( 1 )10+ ( -1 )10= ( 0 )10

(00000001)反+ (11111110)反= (11111111)反= ( -0 ) 有問題.

( 1 )10- ( 2)10= ( 1 )10+ ( -2 )10= ( -1 )10

(00000001)反+ (11111101)反= (11111110)反= ( -1 )正確

問題出現在(+0)和(-0)上,在人們的計算概念中零是沒有正負之分的.(印度人首先將零作為標記並放入運算之中,包含有零號的印度數學和十進位制計數對人類文明的貢獻極大).

於是就引入了補碼概念. 負數的補碼就是對反碼加一,而正數不變,正數的原碼反碼補碼是一樣的.在補碼中用(-128)代替了(-0),所以補碼的表示範圍為:

(-128~0~127)共256個.

注意:(-128)沒有相對應的原碼和反碼, (-128) = (10000000) 補碼的加減運算如下:

( 1 )10- ( 1 )10= ( 1 )10+ ( -1 )10= ( 0 )10

(00000001)補+ (11111111)補= (00000000)補= ( 0 )正確

( 1 )10- ( 2)10= ( 1 )10+ ( -2 )10= ( -1 )10

(00000001)補+ (11111110)補= (11111111)補= ( -1 ) 正確

所以補碼的設計目的是:

⑴使符號位能與有效值部分一起參加運算,從而簡化運算規則.

⑵使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計

所有這些轉換都是在計算機的最底層進行的,而在我們使用的彙編、c等其他高階語言中使用的都是原碼。看了上面這些大家應該對原碼、反碼、補碼有了新的認識了吧!

5樓:銀色黎明遠征者

自己看吧

二進位制補碼是什麼意思?

6樓:星河

計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的是十進位制,為了能方便的與二進位制轉換,就使用了十六進製制(2 4)和八進位制1.數值有正負之分,計算機就用乙個數的最高位存放符號(0為正,1為負).這就是機器數的補碼了。

⑴使符號位能與有效值部分一起參加運算,從而簡化運算規則.

⑵使減法運算轉換為加法運算,進一步簡化計算機中運算器的線路設計 所有這些轉換都是在計算機的最底層進行的,而在我們使用的彙編、c等其他高階語言中使用的都是原碼。

1.十進位制分數補碼可以先將分子和分母分別表示成二進位制數,然後計算出二進位制小數,再按下面第三步的方法將求出小數的補碼形式。

37/64=100101b/2^6=0.100101b

-51/128=110011b/2^7=0.0110011b

2.十進位制小數的補碼也應該先將其轉換成二進位制小數,再按下面第三步的方法將求出小數的補碼形式。

0.375=0.011b

0.5625=0.1001b

3.將二進位制小數對應的補碼求出

[37/64]補碼=[0.100101b]補碼=0.1001010b

[-51/128]補碼=[0.0110011b]補碼=1.1001101b

[0.375]補碼=[0.011b]補碼=0.0110000b

[0.5625]補碼=[0.1001b]補碼=0.1001000b

7樓:蘇延佟佳靖之

在二進位制裡

原始碼就是原始的資料

負數:的反碼是原始碼除符號位取反

補碼是反碼+1

正數:原始碼=反碼=補碼

8樓:沙里波特

十進位制,叫做補數。

二進位制,就叫補碼。

都是乙個意思。

二進位制是什麼意思?

9樓:丿

二進位制是計算技術中廣泛採用的一種數制。二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進製規則是「逢二進一」,借位規則是「借一當二」。

二進位制的優缺點都很明顯。優點是只有兩個數碼0和1,因此它的每一位數都可用任何具有兩個不同穩定狀態的元件來表示;基本運算規則簡單,運算操作方便。缺點是用二進位制表示乙個數時,位數多。

因此實際使用中多採用送入數字系統前用十進位制。

擴充套件資料

用四位二進位制**來表示一位十進位制數,稱為二-十進位制編碼,簡稱bcd(binary coded decimal)碼。根據**的每一位是否有權值bcd碼可分為有權碼和無權碼兩類,應用最多的是8421bcd碼,無權碼用得較多的是餘三碼和格雷碼,我們通常所說的bcd碼指的是8421bcd碼。

8421bcd碼中的「8421」表示從高到低各位二進位制位對應的權值分別為8、4、2、1,將各二進位制位與權值相乘,並將乘積相加就得相應的十進位制數。例如,8421bcd碼「0111」,0×8+1×4+1×2+1×1=7d,其中d表示十進位制(decimal)數。

值得特別注意的是,8421bcd碼只有0000~1001共十個,而1010、1011...等等不是8421bcd碼。

10樓:抑古龍揚金庸

所謂二進位制,也就是計算機運算時用的一種演算法。二進位制只有一和零組成。

比方說吧,你上一年級時一定聽說過「進製筒」&「數字筒」吧!十進位制是個位上滿十根小棒就捆成一捆,放進十位筒,十位筒滿十捆就捆成一大捆,放進百位筒……二進位制也是一樣的道理,個位筒上滿2根就向十位進一,十位上滿兩根就向百位進一,百位上滿兩根……

二進位制是世界上第一台計算機上用的演算法,最古老的計算機裡有乙個個燈泡,當運算的時候,比如要表達「一」,第乙個燈泡會亮起來。要表達「二」,則第乙個燈泡熄滅,第二個燈泡就會亮起來。

隨著科技的發展,二進位制已經被「八進位制」、「十六進製制」取代了

11樓:匿名使用者

簡單的:

二進位制:逢二進一,資料只有用0與1表示

八進位制:逢八進一,資料只有用0-7表示

十進位制:逢十進一,資料只有用0-9表示

比如:1、在數字電子中,1表示高電平,0表示低電平。

2、11111的二進位制換算成10進製為1+2+4+8+16=31

12樓:匿名使用者

二進位制就是等

於2時就要進製。

0=00000000

1=00000001

2=00000010

3=00000011

4=00000100

5=00000101

6=00000110

7=00000111

8=00001000

9=00001001

10=00001010

……即是逢二進一

13樓:

二進位制就是計算機運用程式的一種演算法!

跟十進位制一樣咯,只是逢二進一,所以他只是以1和0組成!

14樓:百度使用者

二進位制只有兩個數字,即1、0

它是逢二進一,計算機就是採用二進位制

15樓:毛蟲

二進位制二進位製作為計算技術

中廣泛採用的一種數制,兩個數字便可表示所有數字,二進位制資料是用0和1兩個數碼來表示的數。它的基數為2,進製規則是「逢二進一」,借位規則是「借一當二」,由18世紀德國數理哲學大師萊布尼茲發現。

當前的計算機系統使用的基本上是二進位制系統,資料在計算機中主要是以補碼的形式儲存的。計算機中的二進位制則是乙個非常微小的開關,用「開」來表示1,「關」來表示0。

二進位制補碼運算溢位判斷,計算機中二進位制加減法時,是如何判斷溢位的?

補碼運算的溢位判別方式為雙高位判別法,利用cs表示符號位是否進製,利用cp表示最高數值位是否進製。如果cs cp的結果為真,則代表發生了溢位 運算結果大於0則為負溢位,小於0則為正溢位 否則運算結果正確。例如 1000 0011 補碼為 3,原碼為 125 0000 0011 補碼為3,原碼為3 1...

計算機中為什麼採用二進位制八進位制十六進製制

二進位制數書寫冗長 易錯 難記,而十進位制數與二進位制數之間的轉換過程複雜,所以一般用十六進製制數或八進位制數作為二進位制數的縮寫。進製計數制 按進製的原則進行的計數方法稱為進製計數制。在採用進製計數的數字系統中,如果用r個基本符號 例如 0,1,2,r 1 表示數值,則稱其為基r數制 radix ...

在計算機中把二進位制轉化為八進位制甚至十六進製制有什麼意義

說簡單了。二進位制就是 0 和 1 機器語言,電腦讀起來方便,可是人讀起來不方便。轉換成八進位制和十六進製制就是為了改變表達方式來滿足不同的需求。比如設計需求等。交流,比如中文翻譯成英文 計算機中使用八進位制和十六進製制有什麼意義 二進位制數是計算機進行計算的基本進製,它能方便地通過0和1兩種狀態表...