最簡單的話概括含小數的值的原碼,反碼,補碼如何表達

時間 2021-08-14 02:12:18

1樓:芒果給你吃哇

化為2進位制是整數部分除以二知道變為1 小數部分乘以2直到變為1  ,符號位0表示正1表示負

正數:原碼=補碼

負數:原碼 = 正數部分(去掉負號)的二進位制值,且符號位(最左邊的位元位)為1

反碼 = 正數部分(去掉負號)的二進位制值,按位取反

補碼 = 反碼 + 1

小數點依舊用點

定點數所謂定點數是指小數點位置固定不變的數。在計算機中,通常用定點數來表示整數與純小數,分別稱為定點整數與定點小數。

定點整數:一個數的最高二進位制位是數符位,用以表示數的符號;而小數點的位置預設為在最低(即最右邊)的二進位制位的後面,但小數點不單獨佔一個二進位制位,如下所示:

0          1001010010001010001

數符位            數值位                  小數位

因此,在一個定點整數中,數符位右邊的所有二進位制位數表示的是一個整數值。

定點小數:一個數的最高二進位制位是數符位,用來表示數的符號;而小數點的位置預設為在數符位後面,不單獨佔一個二進位制位,如圖所示:

0               1001010010001010001

數符位|小數位         數值位

因此,在一個定點小數中,數符位右邊的所有二進位制位數表示的是一個純小數。

原碼(true form)是一種計算機中對數字的二進位制定點的表示方法。原碼是指一個二進位制數左邊加上符號位後所得到的碼,且當二進位制數大於0時,符號位為0;二進位制數小於0時,符號位為1;二進位制數等於0時,符號位可以為0或1。

2樓:沙裡波特

最簡單的話概括:

含小數的值,沒有原碼,反碼,補碼。

原碼、反碼、補碼

3樓:匿名使用者

請我給你的詳解:原碼、補碼和反碼

(1)原碼錶示法

原碼錶示法是機器數的一種簡單的表示法。其符號位用0表示正號,用:表示負號,數值一般用二進位制形式表示。設有一數為x,則原碼錶示可記作〔x〕原。

例如,x1= +1010110

x2= 一1001010

其原碼記作:

〔x1〕原=[+1010110]原=01010110

〔x2〕原=[-1001010]原=11001010

原碼錶示數的範圍與二進位制位數有關。當用8位二進位制來表示小數原碼時,其表示範圍:

最大值為0.1111111,其真值約為(0.99)10

最小值為1.1111111,其真值約為(一0.99)10

當用8位二進位制來表示整數原碼時,其表示範圍:

最大值為01111111,其真值為(127)10

最小值為11111111,其真值為(-127)10

在原碼錶示法中,對0有兩種表示形式:

〔+0〕原=00000000

[-0] 原=10000000

(2)補碼錶示法

機器數的補碼可由原碼得到。如果機器數是正數,則該機器數的補碼與原碼一樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。設有一數x,則x的補碼錶示記作〔x〕補。

例如,[x1]=+1010110

[x2]= 一1001010

[x1]原=01010110

[x1]補=01010110

即 [x1]原=[x1]補=01010110

[x2] 原= 11001010

[x2] 補=10110101+1=10110110

補碼錶示數的範圍與二進位制位數有關。當採用8位二進位制表示時,小數補碼的表示範圍:

最大為0.1111111,其真值為(0.99)10

最小為1.0000000,其真值為(一1)10

採用8位二進位制表示時,整數補碼的表示範圍:

最大為01111111,其真值為(127)10

最小為10000000,其真值為(一128)10

在補碼錶示法中,0只有一種表示形式:

[+0]補=00000000

[+0]補=11111111+1=00000000(由於受裝置字長的限制,最後的進位丟失)

所以有[+0]補=[+0]補=00000000

(3)反碼錶示法

機器數的反碼可由原碼得到。如果機器數是正數,則該機器數的反碼與原碼一樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。設有一數x,則x的反碼錶示記作〔x〕反。

例如:x1= +1010110

x2= 一1001010

〔x1〕原=01010110

[x1]反=〔x1〕原=01010110

[x2]原=11001010

[x2]反=10110101

反碼通常作為求補過程的中間形式,即在一個負數的反碼的未位上加1,就得到了該負數的補碼。

例1. 已知[x]原=10011010,求[x]補。

分析如下:

由[x]原求[x]補的原則是:若機器數為正數,則[x]原=[x]補;若機器數為負數,則該機器數的補碼可對它的原碼(符號位除外)所有位求反,再在未位加1而得到。現給定的機器數為負數,故有[x]補=[x]原十1,即

[x]原=10011010

[x]反=11100101

十) 1

[x]補=11100110

例2. 已知[x]補=11100110,求〔x〕原。

分析如下:

對於機器數為正數,則〔x〕原=〔x〕補

對於機器數為負數,則有〔x〕原=〔〔x〕補〕補

現給定的為負數,故有:

〔x〕補=11100110

〔〔x〕補〕反=10011001

十) 1

〔〔x〕補〕補=10011010=〔x〕原

或者說:

數在計算機中是以二進位制形式表示的。

數分為有符號數和無符號數。

原碼、反碼、補碼都是有符號定點數的表示方法。

一個有符號定點數的最高位為符號位,0是正,1是副。

以下都以8位整數為例,

原碼就是這個數本身的二進位制形式。

例如0000001 就是+1

1000001 就是-1

正數的反碼和補碼都是和原碼相同。

負數的反碼是將其原碼除符號位之外的各位求反

[-3]反=[10000011]反=11111100

負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。

[-3]補=[10000011]補=11111101

一個數和它的補碼是可逆的。

為什麼要設立補碼呢?

第一是為了能讓計算機執行減法:

[a-b]補=a補+(-b)補

第二個原因是為了統一正0和負0

正零:00000000

負零:10000000

這兩個數其實都是0,但他們的原碼卻有不同的表示。

但是他們的補碼是一樣的,都是00000000

特別注意,如果+1之後有進位的,要一直往前進位,包括符號位!(這和反碼是不同的!)

[10000000]補

=[10000000]反+1

=11111111+1

=(1)00000000

=00000000(最高位溢位了,符號位變成了0)

有人會問

10000000這個補碼錶示的哪個數的補碼呢?

其實這是一個規定,這個數表示的是-128

所以n位補碼能表示的範圍是

-2^(n-1)到2^(n-1)-1

比n位原碼能表示的數多一個

又例:1011

原碼:01011

反碼:01011 //正數時,反碼=原碼

補碼:01011 //正數時,補碼=原碼

-1011

原碼:11011

反碼:10100 //負數時,反碼為原碼取反

補碼:10101 //負數時,補碼為原碼取反+1

0.1101

原碼:0.1101

反碼:0.1101 //正數時,反碼=原碼

補碼:0.1101 //正數時,補碼=原碼

-0.1101

原碼:1.1101

反碼:1.0010 //負數時,反碼為原碼取反

補碼:1.0011 //負數時,補碼為原碼取反+1

在計算機內,定點數有3種表示法:原碼、反碼和補碼

所謂原碼就是前面所介紹的二進位制定點表示法,即最高位為符號位,「0」表示正,「1」表示負,其餘位表示數值的大小。

反碼錶示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。

補碼錶示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

假設有一 int 型別的數,值為5,那麼,我們知道它在計算機中表示為:

00000000 00000000 00000000 00000101

5轉換成二制是101,不過int型別的數佔用4位元組(32位),所以前面填了一堆0。

現在想知道,-5在計算機中如何表示?

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

什麼叫補碼呢?這得從原碼,反碼說起。

原碼:一個整數,按照絕對值大小轉換成的二進位制數,稱為原碼。

比如 00000000 00000000 00000000 00000101 是 5的 原碼。

反碼:將二進位制數按位取反,所得的新二進位制數稱為原二進位制數的反碼。

取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)

比如:將00000000 00000000 00000000 00000101每一位取反,得11111111 11111111 11111111 11111010。

稱:11111111 11111111 11111111 11111010 是 00000000 00000000 00000000 00000101 的反碼。

反碼是相互的,所以也可稱:

11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互為反碼。

補碼:反碼加1稱為補碼。

也就是說,要得到一個數的補碼,先得到反碼,然後將反碼加上1,所得數稱為補碼。

比如:00000000 00000000 00000000 00000101 的反碼是:11111111 11111111 11111111 11111010。

那麼,補碼為:

11111111 11111111 11111111 11111010 1 = 11111111 11111111 11111111 11111011

所以,-5 在計算機中表達為:11111111 11111111 11111111 11111011。轉換為十六進位制:0xfffffffb。

再舉一例,我們來看整數-1在計算機中如何表示。

假設這也是一個int型別,那麼:

1、先取1的原碼:00000000 00000000 00000000 00000001

2、得反碼: 11111111 11111111 11111111 11111110

3、得補碼: 11111111 11111111 11111111 11111111

正數的原碼,補碼,反碼都相同,都等於它本身

負數的補碼是:符號位為1,其餘各位求反,末位加1

反碼是:符號位為1,其餘各位求反,但末位不加1

也就是說,反碼末位加上1就是補碼

1100110011 原

1011001100 反 除符號位,按位取反

1011001101 補 除符號位,按位取反再加1

正數的原反補是一樣的

在計算機中,資料是以補碼的形式儲存的:

在n位的機器數中,最高位為符號位,該位為零表示為正,為1表示為負;

其餘n-1位為數值位,各位的值可為0或1。

當真值為正時:原碼、反碼、補碼數值位完全相同;

當真值為負時: 原碼的數值位保持原樣,

反碼的數值位是原碼數值位的各位取反,

補碼則是反碼的最低位加一。

注意符號位不變。

如:若機器數是16位:

十進位制數 17 的原碼、反碼與補碼均為: 0000000000010001

十進位制數-17 的原碼、反碼與補碼分別為:1000000000010001、1111111111101110、1111111111101111

關羽的簡單概括,關羽的資料簡單概括150字

張飛結義起事,三人寢則同床,恩若兄弟 到 降漢不降曹 劉備謀誅曹操不成,兵敗投奔袁紹,被曹操俘虜的關羽身在曹營心在漢 斬顏良,誅文丑 為報曹操知遇之恩,助曹操解白馬之圍 過五關斬六獎 得知劉備下落,不畏艱險前去尋找 火燒赤壁 水淹七軍 威震華夏 在到 單刀赴會 敗走麥城 度過了轟轟烈烈的一生。關羽的...

白鹿原簡單概括,白鹿原簡單概括30字

假面 白鹿原 展現給我一個別樣的世界,濃郁的漢中風情,讓我十分懷念北方的家鄉。成長在白鹿原上的人們,淳樸踏實,平靜而又滿足的生活著,他們有堅定的信仰,有足夠的生的意念和毅力,對付那發生在以習慣長久的平靜的白鹿原上的一波又一波的侵襲和災禍。他們努力堅守著,信念,鄉約,還有那為自身利益最大化而不觸犯道德...

《犬夜叉》內容概括,簡單哦,《犬夜叉》內容概括,簡單哦

來自一個神社的少女日暮戈薇,是最普通的初三學生。由家中的井到了500年前的戰國時代,在那裡解開了被封印的半妖 犬夜叉的封印。犬夜叉為了成為完全的妖怪而想要得到四魂之玉。四魂之玉變成碎片飛散四處。他們為了尋找四魂之玉的碎片和妖怪們戰鬥的旅程開始了 女人通過井找到一條狗,然後大家一起去尋找一個叫四魂之玉...