已知計算機字長為8位機器數真值1011011求該數

2021-03-17 09:27:22 字數 4812 閱讀 7826

1樓:匿名使用者

42(10)=101010(2) -42(10)原始碼= 1(符號位 1代表負;0代表正) 0(不足7位補0)101010 反碼= 1(符號位無需變反) 1010101(數值位變反) 補碼= 1 1010110(二進位制加一) 1010101 +0000001 ------------- 1010110 1+1=10(進一) 1+0=1 0+0=0

一個數的原碼,反碼,補碼怎麼算?

2樓:匿名使用者

計算機中的儲存系統都是用2進位制儲存的,對我們輸入的每一個資訊它都會自動轉變成二進位制的形式,而二進位制在儲存的時候就會用到原碼,反碼和補碼例如:輸入25原碼是:0000000000011001反碼:

1111111111100110 補碼: 1111111111100111

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

為了能方便的與二進位制轉換,就使用了十六進位制(2 4)和八進位制(23).下面進入正題.

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

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

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

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

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

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

( 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等其他高階語言中使用的都是原碼

3樓:卓姮節悠

舉例說明如下:

真值-11d

=-1011b

,若字長8位,

則:[-11d]原

=10001011b

,最高位是符號位,1表示負數,其餘為數值位[-11d]反

=11110100b

,將原碼除符號位之外的各位取反得反碼

[-11d]補

=11110101b

,將反碼末位加1得補碼

d是十進位制數字尾

,b是二進位制數字尾

若是正數,無須上述操作。原碼=反碼=補碼=真值,例如:

真值20d

=10100b,

若用8位字長機器數表示,則:

[20]原

=[20]反

=[20]補

=00010100b

最高位是符號位,0表示正數,符號右側用兩個0補齊8位

4樓:prince致匠園藝

補碼的運算:聽老師講解真值、原碼、反碼和補碼

5樓:沙裡波特

不用算。

有個定義式,直接就能求出來。

不用互相的算。

什麼是一個數的原碼,反碼,補碼??

6樓:匿名使用者

基本概念

在計算機內部表示二進位制數的方法稱為數值編碼,把一個數及其符號在機器中的表示加以數值化,稱為機器數。機器數所代表的數稱為數的真值。 表示一個機器數,應考慮以下三個因素:

1.機器數的範圍

字長為8位,無符號整數的最大值是(11111111)b=(255)d,此時機器數的範圍是0~255。

字長為16位,無符號整數的最大值是

(1111111111111111)b=(ffff)h=(65535)d 此時機器數的範圍是0~65535。

2.機器數的符號

在算術運算中,資料是有正有負的,將這類資料稱為帶符號數。

為了在計算機中正確地表示帶符號數,通常規定每個字長的最高位為符號位,並用0表示正數,用1表示負數。

3.機器數中小數點的位置

在機器中,小數點的位置通常有兩種約定:

一種規定小數點的位置固定不變,這時的機器數稱為「定點數」。

另一種規定小數點的位置可以浮動,這時的機器數稱為「浮點數」。

4.原碼

正數的符號位為0,負數的符號位為1,其它位按照一般的方法來表示數的絕對值。用這樣的表示方法得到的就是數的原碼。

【例1】當機器字長為8位二進位制數時:

x=+1011011 [x]原碼=01011011

y=+1011011 [y]原碼=11011011

[+1]原碼=00000001 [-1]原碼=10000001

[+127]原碼=01111111 [-127]原碼=11111111

原碼錶示的整數範圍是:

-(2n-1-1)~+(2n-1-1),其中n為機器字長。

則:8位二進位制原碼錶示的整數範圍是-127~+127

16位二進位制原碼錶示的整數範圍是-32767~+32767

5.反碼

對於一個帶符號的數來說,正數的反碼與其原碼相同,負數的反碼為其原碼除符號位以外的各位按位取反。【例2.14】當機器字長為8位二進位制數時:

x=+1011011 [x]原碼=01011011 [x]反碼=01011011

y=-1011011 [y]原碼=11011011 [y]反碼=10100100

[+1]反碼=00000001 [-1]反碼=11111110

[+127]反碼=01111111 [-127]反碼=10000000

負數的反碼與負數的原碼有很大的區別,反碼通常用作求補碼過程中的中間形式。 反碼錶示的整數範圍與原碼相同。

6.補碼

正數的補碼與其原碼相同,負數的補碼為其反碼在最低位加1。

【例2】(1)x=+1011011 (2) y=-1011011

(1)根據定義有: [x]原碼=01011011 [x]補碼=01011011

(2) 根據定義有: [y]原碼=11011011 [y]反碼=10100100

[y]補碼=10100101

補碼錶示的整數範圍是-2n-1~+(2n-1-1),其中n為機器字長。

則:8位二進位制補碼錶示的整數範圍是-128~+127

16位二進位制補碼錶示的整數範圍是-32768~+32767

當運算結果超出這個範圍時,就不能正確表示數了,此時稱為溢位。

7.補碼與真值之間的轉換

正數補碼的真值等於補碼的本身;負數補碼轉換為其真值時,將負數補碼按位求反,末位加1,即可得到該負數補碼對應的真值的絕對值。

【例3】[x]補碼=01011001b,[x]補碼=11011001b,分別求其真值x。

(1)[x]補碼代表的數是正數,其真值:

x=+1011001b

=+(1×26+1×24+1×23+1×20)

=+(64+16+8+1)

=+(89)d

(2)[x]補碼代表的數是負數,則真值:

x=-([1011001]求反+1)b

=-(0100110+1)b

=-(0100111)b

=-(1×25+1×22+1×21+1×20)

=-(32+4+2+1)

=-(39)d

7樓:匿名使用者

正數的原始碼 反碼 補碼一樣的 就是轉位二進位制負數原始碼就是二進位制碼

反碼就是1變0 0變1

補碼就是反碼加1

計算機中位位元組字字長的含義是什麼

1.位或位元 bit 一個電子線路單元稱為一個 位 bit 它有兩個穩定回的工作狀態,分別答以 0 和 1 表示。是計算機中最小的資料單位。2.位元組 byte 8位二進位制數稱為一個 位元組 byte,簡寫b 它是計算機儲存資訊的基本單位,也是計算機儲存空間大小的最基本容量單位。3.字 word ...

計算機位和位元組的關係?比如說16位的計算機對應的位元組數是2的

一個位元組對應8bit,即是你所說的一位,16位的計算機對應的位元組數是2的16次方 其實就是一個定址的問題,本質就是16bit可以表示2的16次方種不同的數嗎,所以對應2的16次個地址。或者是2的16次個儲存單元,每一個儲存單元有8bit,所以最後的位數就是2的16次方再乘以8。當然如果一個儲存單...

請問 為什麼計算機能識別機器語言

二進位制是逢二進一 注 如 2 表示2的2次方,2 表示2的5次方 1.二進位制計數法的概念 人們在日常生活中和生產實踐中,我們接觸到越來越多的數字,創造了分組計數的制度.而我們的生活中,一般採用了 滿十進一 的十進位制計數法,我們現在已經熟悉並經常運用這一種計數法了.但也有采用其他計數法.如二進位...