導航:首頁 > 源碼編譯 > 00h的源碼反碼補碼移碼

00h的源碼反碼補碼移碼

發布時間:2023-05-23 17:23:09

⑴ 0的原碼,補碼,反碼是什麼

0在計算機種分+0與-0,它們的原碼,補碼,反碼如下:

1、[+0]原碼=0000 0000, [-0]原碼=1000 0000;

2、[+0]反碼=0000 0000, [-0]反碼=1111 1111;

3、[+0]補碼=0000 0000, [-0]補碼=0000 0000。

在這里你會發現,+0和-0的補碼是一樣的,即0的補碼只有一種表示。

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

(1)00h的源碼反碼補碼移碼擴展閱讀

原碼、補碼、反碼的轉換規則:

1、原碼的求法:

(1)對於正數,轉化為二進制數,在最前面添加一符號位(這是規定的),用1表示負數,0表示正數,如:0000 0000是一個位元組,其中左邊第一個0,0為符號位,表示是正數,其它七位表示二進制的值。

(2)正數的原碼、反碼、補碼是同一個數。

(3)對於負數,轉化為二進制數,前面符號位為1,1表示是負數。

2、計算原碼只要在轉化的二進制數前面加上相應的符號位就行了。

3、反碼的求法:

對於負數,將原碼各位取反,符號位不變。

4、補碼的求法:

對於負數,將反碼加上二進制的1即可,也就是反碼在最後一位上加上1就是補碼了。

⑵ 原碼,補碼,反碼都是什麼意思,怎麼算啊

把十進制數轉換成二進制數後,二進制數就是原碼
例如:十進制:2 -----> 二進制:10
「二進制:10「就是原碼
為了湊夠8位,在二進制10前面加6個0,變成00000010
2的原碼:00000010
2的反碼:00000010
2的補碼:00000010
也就是,正數的原碼,反碼,補碼都相同
下面是負數的原碼、反碼、和補碼:
3的原碼:00000011 -3的原碼:10000011 也就是最左邊的那個數表示正負,0代表正,1代表負,它也叫符號位
-3的原碼:10000011
-3的反碼:11111100 負數的反碼是對其原碼按位取反,符號位不變
-3的補碼:11111101 負數的補碼是在其反碼的末位加1
計算機用補碼計算

⑶ 計算機理論:原碼、反碼、補碼與移碼公式記憶方法(個人總結)

  給定一個數,其真值為x,機器字長信余為n,則針對帶符號數:

  針對機器字長為n的帶符號數x,原碼與反碼取值范圍一樣,以下整數均為純整數,小數均為純小數:

  直接看公式可能不容易記住,所以最好是記實例。針對機器字長為8位(即n=8)的帶符號純整數x,其純整數取值范圍是-127 ~ 127,即127= 128-1=2 7 -1=2 (8-1) - 1=2 (n-1) - 1。純小數的取值范滑歲滾圍是-1 ~ 1,因為原碼與反碼有2個0(即-0、+0)所以正負小數都可以等於0
  補碼的取值范圍:

  同樣記實例。針對機器字長為8位(即n=8)的帶符號純整數x,其取值范圍是-128~127,即-128 = -2 7 -(2 8-1 ) = -(2 n-1 ),127= 128-1=2 7 -1=2 (8-1) - 1=2 (n-1) - 1。純小數的取值范圍是-1 ~ 1,但補碼只有1個0(即+0),所以負小數小於0,可以等於-1。
  移碼的取值范圍:

  移碼公式不分正負數。

  針對正數(正整數與正小數),原碼、反碼與補碼的表示是一樣的。
  針對機器字長為n的負數(負整數與負小數):

  記憶方法:(機器字長n=8)
  1、對於原碼負數,符號位取1,即1000 0000。若1000 0000為整數,其值為2 7 =2 n-1 ,若為小數,其值為2 0 ,最後加上|x|即可。
  2、對於反碼負數,符合位取1,數值位取反,即1111 1111,若1111 1111為整數,其值為255=2 n -1,若為小數,其值為2 1 -2 -7 =2-2 -(n-1) ,最後加上x即可。
  3、對於補碼負數,符合位取1,數值位雀嘩取反,再加1,即1 0000 0000,若1 0000 0000為整數,其值為256=2 n ,若為小數,其值為2,最後加上x即可。
  4、對於移碼,其公式與原碼負整數和負小數公式相似,但移碼取x,原碼取|x|。

⑷ 原碼、反碼、補碼、移碼

都是指代 二進制 數

一、原碼
1:字長為8 , 符號位(首位)為0 表示正數 ; 符號位(首位)為1 表示負數
2:0000 0001 表示 正1 ; 1000 0001 表示負1

二、反碼
1:正數,反碼和原碼一樣。正1的原碼和反碼為0000 0001
2:負數,符號位不信灶變或做,其他位取反。負1的反碼為:1111 1110

三、補碼
1:正數,補碼和原碼一樣。正1的補碼為 0000 0001
2:負數,補碼為反碼加1,負1的補碼為 1111 1111
3:計算機在計算的時候是用補碼在計算。

四、移碼
1:補碼的符號位取反 正1的移碼為 1000 0001 ; 負1的衫坦衡移碼為 0111 1111

⑸ 二進制的原碼、反碼、補碼、移碼

之前了解一些原碼、反碼、補碼,但是一直有疑問,為什麼會有原碼、反碼、補碼?所以決定研究一下。

計算機中參與運算的數有兩大類:無符號數和有符號數。此篇主要看一下有符號數。在了解原碼、反碼、補碼前需要先了解機器數和真值。

對於有符號數而言,使用「0」表示正,「1」表示負,這種把符號「數字化」的數稱為 機器數 ,也就是一個數在計算機中的二進製表示。

例如:+1100 在機器中表示為 0 1100;-1100 在機器中表示為1 1100

整數的符號位和值用逗號隔開,小數的小數點用點來隔開。
例如:+3轉換成二進制就是00000011,-3就是10000011,這就是機器數。

帶符號位的機器數對應的真正數值就是 真值 。例如:1000 0011的真值是-3,而不是131,它的最高位是符號位。

下面開始說原碼、反碼、補碼。

原碼是機器數中最簡單的一種表示形式,包括符號位和數值位。

原碼: 符號位加上真值的絕對值,即第一位輪陵表示符號位,其餘為表示值。原碼是人腦最容易理解和計算的表示方式。

整數原碼的定義:

小數原碼的定義為:

原碼的問題:
以正負1來說明問題,先來看1+(-1)的計算過程:

1+(-1)=0,但是用原碼來算結果卻是-2,原碼的加法沒有問題,但是減法卻出現了問題。

為了解決原碼做減法時出現的問題,出現了反碼,我們用其他的方式來表示負數,使減法的問題用加法去解決。

補數的思想:
要了解補碼的思想就要知道「模」、「同餘」、「補數」的概念。

在日常生活中,常會遇到「補數」的概念。計算機組成原理(唐朔飛)中舉了一個時鍾的例子,現在是6點鍾,要到達3點鍾的話該怎麼辦呢?我們可以順時針方向將時針移動9小時,或是逆時針移動3小時,我們都可以到達3點鍾,假設順時針轉為正,逆時針轉為負,則有:

鍾表時針轉一圈能代表12個小時,在數學上稱12為模,寫作mod 12,對於mod 12而言,+9和-3互為補數,3和15是同餘關系,記作3≡15 (mod 12),3 + 12 = 15.

其實就相當於沒到12點就丟失,從0點重新開始。

將補數的概念用到計算機中,便出現了補碼這種機器數。

補碼 :正數的反碼是其本身,負數的補碼是在其原碼的基礎上, 符號位不變, 其餘各位取反, 最後+1. (即在反碼的基礎上+1),這里只是便於計算才這樣說。

對於補碼,相當於是模加上真值,就如同上面的6+(-3),-3就是真值。
整數補碼的定義為:

例如:
當x=+1010時,[x] =0,1010;
當x=-1101時,[x] =2 n+1 + x = 2 5 - 1101 = 100000 - 1101 = 1,0011

小數補碼的猜敏定義為:

小數補碼定義中mod 2的由來:

例如:
當x=+0.0110時,[x] =0.1001;
當x=-0.0110時,[x] =2 + x = 10.0000 - 0.0110 = 1.1010
當x=0時,
[+0.0000] =0.0000;
[-0.0000] =2 + (-0.0000) = 10.0000 - 0.0000 = 0.0000;
顯然[+0] =[-0] =0.0000,即補碼中的「零」只有一種表示形式。

補碼的符號位擴展:
1、補碼的正負小數符號位擴展就是在末尾加0即可,例如:1.1101擴展為1.1101 0000
2、補碼的正數符號位擴展在最高位前面加0即可,例如:0101擴展穗桐枝為0000 0101
3、補碼的負數符號位擴展在最高位前面加1既可以,例如:1010擴展為1111 1010

反碼通常用來作為由原碼求補碼或者由補碼求原碼的中間過渡。
反碼: 正數的反碼是其本身,負數的反碼是在其原碼的基礎上,符號位不變,其餘各個位取反。 這個方法只是利於計算,但是並不代表反碼的真正含義,可以把它忘記

整數反碼的定義為:

小數反碼的定義為:

因為補碼符號位和數值一起編碼,所以很難從補碼上直接判斷出其真值的大小,而用移碼就可以很直觀的看判斷出來。

移碼的定義:

利用移碼的這一特點,當浮點數的階碼用移碼表示時,就能很方便的判斷階碼的大小。

移碼 相當於補碼的符號位取反。

對於補碼來說是存在符號位的,使用移碼就相當於把補碼的負數部分往上移動,使得最小值變為0,而不是負數。

移碼更詳細的用處以後再研究。

寫在最後:

⑹ 給下列16進制數,若將此數分別視為無符號數,源碼,補碼,反碼和移碼表示,寫出對應的十進制整數

50H = 0101 0000B

50H 當做無符號數字,代表:80。
50H 當做原碼,代表:80。
50H 當做反碼,代表:80。
50H 當做補碼,代表:80。
50H 當做移碼,代表:-48。

FEH = 1111 1110B

FEH 當做無符號數字,代表:254。
FEH 當做原碼,代表:-126。
FEH 當做反碼,代表:-1。
FEH 當做補碼,代表:-2。
FEH 當做移碼,代表:+126。

閱讀全文

與00h的源碼反碼補碼移碼相關的資料

熱點內容
java倒三角列印 瀏覽:112
通達信回封板主圖源碼 瀏覽:44
戰地什麼伺服器 瀏覽:299
安卓為什麼老是閃退怎麼辦 瀏覽:803
樂高機器人的編程軟體下載 瀏覽:223
工作中怎麼使用加密狗 瀏覽:735
雲伺服器的後台找不到 瀏覽:98
php逐行寫入文件 瀏覽:912
javaoracleweb 瀏覽:440
京東加密碼怎麼弄 瀏覽:467
單片機程序員培訓 瀏覽:992
PHP商城源代碼csdn 瀏覽:636
怎麼把電腦里文件夾挪出來 瀏覽:693
java流程處理 瀏覽:685
ftp創建本地文件夾 瀏覽:660
腰椎第一節壓縮 瀏覽:738
xp去掉加密屬性 瀏覽:117
2345怎麼壓縮文件 瀏覽:982
迷你奪寶新演算法 瀏覽:407
伺服器如何防止木馬控制 瀏覽:715