當前位置:編程學習大全網 - 源碼下載 - 原碼反碼補碼概念(原碼反碼補碼)

原碼反碼補碼概念(原碼反碼補碼)

您好,我就為大家解答關於原碼反碼補碼概念,原碼反碼補碼相信很多小夥伴還不知道,現在讓我們壹起來看看吧!1、請我給妳的詳解:原碼、補...

您好,我就為大家解答關於原碼反碼補碼概念,原碼反碼補碼相信很多小夥伴還不知道,現在讓我們壹起來看看吧!

1、請我給妳的詳解:原碼、補碼和反碼(1)原碼表示法 原碼表示法是機器數的壹種簡單的表示法。

2、其符號位用0表示正號,用:表示負號,數值壹般用二進制形式表示。

3、設有壹數為x,則原碼表示可記作〔x〕原。

4、例如,X1= +1010110X2= 壹1001010其原碼記作:〔X1〕原=[+1010110]原=01010110〔X2〕原=[-1001010]原=11001010原碼表示數的範圍與二進制位數有關。

5、當用8位二進制來表示小數原碼時,其表示範圍:最大值為0.1111111,其真值約為(0.99)10最小值為1.1111111,其真值約為(壹0.99)10當用8位二進制來表示整數原碼時,其表示範圍:最大值為01111111,其真值為(127)10最小值為11111111,其真值為(-127)10在原碼表示法中,對0有兩種表示形式:〔+0〕原=00000000[-0] 原=10000000(2)補碼表示法 機器數的補碼可由原碼得到。

6、如果機器數是正數,則該機器數的補碼與原碼壹樣;如果機器數是負數,則該機器數的補碼是對它的原碼(除符號位外)各位取反,並在未位加1而得到的。

7、設有壹數X,則X的補碼表示記作〔X〕補。

8、例如,[X1]=+1010110[X2]= 壹1001010[X1]原=01010110[X1]補=01010110即 [X1]原=[X1]補=01010110[X2] 原= 11001010[X2] 補=10110101+1=10110110補碼表示數的範圍與二進制位數有關。

9、當采用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)反碼表示法 機器數的反碼可由原碼得到。

10、如果機器數是正數,則該機器數的反碼與原碼壹樣;如果機器數是負數,則該機器數的反碼是對它的原碼(符號位除外)各位取反而得到的。

11、設有壹數X,則X的反碼表示記作〔X〕反。

12、例如:X1= +1010110X2= 壹1001010〔X1〕原=01010110[X1]反=〔X1〕原=01010110[X2]原=11001010[X2]反=10110101反碼通常作為求補過程的中間形式,即在壹個負數的反碼的未位上加1,就得到了該負數的補碼。

13、例1. 已知[X]原=10011010,求[X]補。

14、分析如下:由[X]原求[X]補的原則是:若機器數為正數,則[X]原=[X]補;若機器數為負數,則該機器數的補碼可對它的原碼(符號位除外)所有位求反,再在未位加1而得到。

15、現給定的機器數為負數,故有[X]補=[X]原十1,即[X]原=10011010[X]反=11100101十) 1 [X]補=11100110例2. 已知[X]補=11100110,求〔X〕原。

16、分析如下:對於機器數為正數,則〔X〕原=〔X〕補對於機器數為負數,則有〔X〕原=〔〔X〕補〕補現給定的為負數,故有:〔X〕補=11100110〔〔X〕補〕反=10011001十) 1 〔〔X〕補〕補=10011010=〔X〕原 或者說:數在計算機中是以二進制形式表示的。

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

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

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

20、 以下都以8位整數為例, 原碼就是這個數本身的二進制形式。

21、 例如0000001 就是+11000001 就是-1 正數的反碼和補碼都是和原碼相同。

22、 負數的反碼是將其原碼除符號位之外的各位求反 [-3]反=[10000011]反=11111100 負數的補碼是將其原碼除符號位之外的各位求反之後在末位再加1。

23、 [-3]補=[10000011]補=11111101 壹個數和它的補碼是可逆的。

24、 為什麽要設立補碼呢? 第壹是為了能讓計算機執行減法: [a-b]補=a補+(-b)補 第二個原因是為了統壹正0和負0 正零:00000000 負零:10000000 這兩個數其實都是0,但他們的原碼卻有不同的表示。

25、 但是他們的補碼是壹樣的,都是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”表示負,其余位表示數值的大小。

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

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

28、假設有壹 int 類型的數,值為5,那麽,我們知道它在計算機中表示為: 00000000 00000000 00000000 00000101 5轉換成二制是101,不過int類型的數占用4字節(32位),所以前面填了壹堆0。

29、 現在想知道,-5在計算機中如何表示? 在計算機中,負數以其正值的補碼形式表達。

30、 什麽叫補碼呢?這得從原碼,反碼說起。

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

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

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

34、 取反操作指:原為1,得0;原為0,得1。

35、(1變0; 0變1) 比如:將00000000 00000000 00000000 00000101每壹位取反,得11111111 11111111 11111111 11111010。

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

37、 反碼是相互的,所以也可稱: 11111111 11111111 11111111 11111010 和 00000000 00000000 00000000 00000101 互為反碼。

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

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

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

41、 那麽,補碼為: 11111111 11111111 11111111 11111010 1 = 11111111 11111111 11111111 11111011 所以,-5 在計算機中表達為:11111111 11111111 11111111 11111011。

42、轉換為十六進制:0xFFFFFFFB。

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

44、 假設這也是壹個int類型,那麽: 先取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。

45、 當真值為正時:原碼、反碼、補碼數值位完全相同; 當真值為負時: 原碼的數值位保持原樣, 反碼的數值位是原碼數值位的各位取反, 補碼則是反碼的最低位加壹。

46、 註意符號位不變。

47、 如:若機器數是16位: 十進制數 17 的原碼、反碼與補碼均為: 0000000000010001 十進制數-17 的原碼、反碼與補碼分別為:1000000000010001111111111101110、1111111111101111。

  • 上一篇:珊瑚蟲4.0的如來神掌怎麽使用那?
  • 下一篇:貝克漢姆家的小七遺傳了老媽的摩登,她有哪些造型值得看?
  • copyright 2024編程學習大全網