二、八、十、十六進制的使用及轉換_第1頁
二、八、十、十六進制的使用及轉換_第2頁
二、八、十、十六進制的使用及轉換_第3頁
二、八、十、十六進制的使用及轉換_第4頁
二、八、十、十六進制的使用及轉換_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-作者xxxx-日期xxxx二、八、十、十六進制的使用及轉換【精品文檔】二、八、十、十六進制的使用及轉換十六進制(英文名稱:Hexadecimal),是計算機中數(shù)據(jù)的一種表示方法。同我們日常生活中的表示法不一樣。它由0-9,A-F組成,字母不區(qū)分大小寫。與10進制的對應關系是:0-9對應0-9;A-F對應10-15;N進制的數(shù)可以用0(N-1)的數(shù)表示,超過9的用字母A-F。 基本簡介: 十六進制(英文名稱:Hexadecimal),是計算機中數(shù)據(jù)的一種表示方法。同我們日常生活中的表示法不一樣。它由0-9,A-F組成,字母不區(qū)分大小寫。與10進制的對應關系是:0-9對應0-9;A-F對應10-

2、15;N進制的數(shù)可以用0(N-1)的數(shù)表示,超過9的用字母A-F。 表示方法: 十六進制照樣采用位置計數(shù)法,位權是16為底的冪。對于n位整數(shù),m位小數(shù)的十六進制數(shù)用加權系數(shù)的形式表示如下: 舉例說明16進制的20表示成10進制就是:216+016=3210進制的32表示成16進制就是:20十進制數(shù)可以轉換成十六進制數(shù)的方法是:十進制數(shù)的整數(shù)部分除以16取余,十進制數(shù)的小數(shù)部分乘16取整,進行轉換。比如說十進制的0.1轉換成八進制為0.0631463146314631。就是0.1乘以8=0.8,不足1不取整,0.8乘以8=6.4,取整數(shù)6, 0.4乘以8=3.2,取整數(shù)3,依次下算。編程中,我們

3、常用的還是10進制.畢竟C/C+是高級語言。比如: int a = 100,b = 99;不過,由于數(shù)據(jù)在計算機中的表示,最終以二進制的形式存在,所以有時候使用二進制,可以更直觀地解決問題。但二進制數(shù)太長了。比如int 類型占用4個字節(jié),32位。比如100,用int類型的二進制數(shù)表達將是:000000000000000001100100面對這么長的數(shù)進行思考或操作,沒有人會喜歡。因此,C,C+ 沒有提供在代碼直接寫二進制數(shù)的方法。用16進制或8進制可以解決這個問題。因為,進制越大,數(shù)的表達長度也就越短。不過,為什么偏偏是16或8進制,而不其它的,諸如9或20進制呢?2、8、16,分別是2的1次

4、方、3次方、4次方。這一點使得三種進制之間可以非常直接地互相轉換。8進制或16進制縮短了二進制數(shù),但保持了二進制數(shù)的表達特點。在下面的關于進制轉換的課程中,你可以發(fā)現(xiàn)這一點。 轉換二進制轉換十進制二進制數(shù)第0位的權值是2的0次方,第1位的權值是2的1次方所以,設有一個二進制數(shù):101100100,轉換為10進制為:356用橫式計算: 02+02+12+02+02+12+12+02+12=3560乘以多少都是0,所以我們也可以直接跳過值為0的位:12+12+12+12=3564+32+64+256 =356八進制轉換十進制八進制就是逢8進1。八進制數(shù)采用 07這八數(shù)來表達一個數(shù)。八進制數(shù)第0位的

5、權值為8的0次方,第1位權值為8的1次方,第2位權值為8的2次方所以,設有一個八進制數(shù):1507,轉換為十進制為:839,具體方法如下:可以用橫式直接計算: 78+08+58+18=839也可以用豎式表示: 第0位 780=7 第1位 081=0 第2位 582=320 第3位 183=512十六進制轉換十進制16進制就是逢16進1,但我們只有09這十個數(shù)字,所以我們用A,B,C,D,E,F(xiàn)這六個字母來分別表示10,11,12,13,14,15。字母不區(qū)分大小寫。十六進制數(shù)的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方所以,在第N(N從0開始)位上,如果是

6、數(shù) (大于等于0,并且小于等于 15,即:F)表示的大小為 16的N次方。假設有一個十六進數(shù) 2AF5直接計算就是: 516+F16+A16+216=10997也可以用豎式表示: 第0位: 516=5 第1位: F161=240 第2位: A162=2560 第3位: 2163=8192 10997此處可以看出,所有進制換算成10進制,關鍵在于各自的權值不同。假設有人問你,十進數(shù)1234 為什么是一千二百三十四?你可以給他這么一個算式:1234 = 110+210+310+410十六進制互相轉換首先我們來看一個二進制數(shù):1111,它是多少呢?你可能還要這樣計算:12+12+12+12=11+1

7、2+14+18=15。然而,由于1111才4位,所以我們必須直接記住它每一位的權值,并且是從高位往低位記,:8、4、2、1。 即,最高位的權值為23=8,然后依次是 22=4,21=2,20=1。記住8421,對于任意一個4位的二進制數(shù),我們都可以很快算出它對應的10進制值。下面列出四位二進制數(shù) xxxx 所有可能的值(中間略過部分)僅4位的2進制數(shù) 快速計算方法 十進制值 十六進制1111 = 8 + 4 + 2 + 1 = 15 =F1110 = 8 + 4 + 2 + 0 = 14= E1101 = 8 + 4 + 0 + 1 = 13= D1100 = 8 + 4 + 0 + 0 =

8、12 =C1011 = 8 + 0 + 2 + 1 = 11= B1010 = 8 + 0 + 2 + 0 = 10 =A1001 = 8 + 0 + 0 + 1 =9 =90001 = 0 + 0 + 0 + 1 = 1= 10000 = 0 + 0 + 0 + 0 = 0= 0二進制數(shù)要轉換為十六進制,就是以4位一段,分別轉換為十六進制。如(上行為二制數(shù),下面為對應的十六進制):1111 1101 , 1010 0101 , 1001 1011F D , A 5 , 9 B反過來,當我們看到 FD時,如何迅速將它轉換為二進制數(shù)呢? 先轉換F: 看到F,我們需知道它是15(可能你還不熟悉AF

9、這五個數(shù)),然后15如何用8421湊呢?應該 是8 + 4 + 2 + 1,所以四位全為1 :1111。接著轉換D: 看到D,知道它是13,13如何用8421湊呢?應該是:8 + 4 + 1,即:1101。所以,F(xiàn)D轉換為二進制數(shù),為:1111 1101由于十六進制轉換成二進制相當直接,所以,我們需要將一個十進制數(shù)轉換成2進制數(shù)時,也可以先轉換成16進制,然后再轉換成2進制。比如,十進制數(shù) 1234轉換成二制數(shù),如果要一直除以2,直接得到2進制數(shù),需要計算較多次數(shù)。所以我們可以先除以16,得到16進制數(shù):被除數(shù) 計算過程 商 余數(shù)1234 1234/16 77 277 77/16 4 13 (

10、D)4 4/16 0 4結果16進制為:4D2然后我們可直接寫出4D2的二進制形式:010011010010其中對映關系為:0100 - 41101 - D0010 - 2同樣,如果一個二進制數(shù)很長,我們需要將它轉換成10進制數(shù)時,除了前面學過的方法是,我們還可以先將這個二進制轉換成16進制,然后再轉換為10進制。下面舉例一個int類型的二進制數(shù):01101101111001011010111100011011我們按四位一組轉換為16進制:6D E5 AF 1B十進制轉十六進制采余數(shù)定理分解,例如將487710轉成十六進制:48771016=30481.14(E)3048116=1905.11

11、90516=119.111916=7.7716=0.7這樣就計到487710(10)=7711E(16) 表達方法: 程序的表達方法環(huán)境 格式備注URL%hex無 XML,XHTMLint b = 0x70 + a;至此,我們學完了所有進制:10進制,8進制,16進制數(shù)的表達方式。最后一點很重要,C/C+中,10進制數(shù)有正負之分,比如12表示正12,而-12表示負12,;但8進制和16進制只能表達無符號的正整數(shù),如果你在代碼中寫:-078,或者寫:-0xF2,C,C+并不把它當成一個負數(shù)。在轉義符中的使用轉義符也可以接一個16進制數(shù)來表示一個字符。如 ? 字符,可以有以下表達方式:? /直接輸

12、入字符77 /用八進制,此時可以省略開頭的00x3F /用十六進制同樣,這一小節(jié)只用于了解。除了空字符用八進制數(shù)0 表示以外,我們很少用后兩種方法表示一個字符。 各碼轉換: 結束了各種進制的轉換,我們來談談另一個話題:原碼、反碼、補碼。我們已經知道計算機中,所有數(shù)據(jù)最終都是使用二進制數(shù)表達。我們也已經學會如何將一個10進制數(shù)如何轉換為二進制數(shù)。不過,我們仍然沒有學習一個負數(shù)如何用二進制表達。比如,假設有一 int 類型的數(shù),值為5,那么,我們知道它在計算機中表示為:500000000000000000000000000000101轉換成二制是101,不過int類型的數(shù)占用4字節(jié)(32位),所以

13、前面填了一堆0。想知道,-5在計算機中如何表示嗎?在計算機中,負數(shù)以其正值的補碼形式表達。什么叫補碼呢?這得從原碼,反碼說起。原碼:一個整數(shù),按照絕對值大小轉換成的二進制數(shù),稱為原碼。比如00000000000000000000000000000101是 5的 原碼。反碼:將二進制數(shù)按位取反,所得的新二進制數(shù)稱為原二進制數(shù)的反碼。取反操作指:原為1,得0;原為0,得1。(1變0; 0變1)比如:00000000000000000000000000000101每一位取反,得11111111 11111111 11111111 11111010。稱:11111111 11111111 111111

14、11 11111010 是00000000000000000000000000000101的反碼。反碼是相互的,所以也可稱:11111111111111111111111111111010和00000000000000000000000000000101互為反碼。補碼:反碼加1稱為補碼。也就是說,要得到一個數(shù)的補碼,先得到反碼,然后將反碼加上1,所得數(shù)稱為補碼。比如:00000000 000000000000000000000101的反碼是:11111111111111111111111111111010那么,補碼為:11111111 11111111 11111111 11111010 +

15、1 = 11111111 11111111 11111111 11111011所以,-5 在計算機中表達為:11111111 11111111 11111111 11111011。轉換為十六進制:0xFFFFFFFB。再舉一例,我們來看整數(shù)-1在計算機中如何表示。假設這也是一個int類型,那么:1、先取1的原碼:000000000000000000000000000000012、得反碼:111111111111111111111111111111103、得補碼:11111111111111111111111111111111可見,-1在計算機里用二進制表達就是全1。16進制為:0xFFFFFF

16、FF。一切都是紙上說的說-1在計算機里表達為0xFFFFFFFF,我能不能親眼看一看呢?當然可以。利用C+ Builder的調試功能,我們可以看到每個變量的16進制值。 變量: 下面我們來動手完成一個小小的實驗,通過調試,觀察變量的值。我們在代碼中聲明兩個int 變量,并分別初始化為5和-5。然后我們通過CB提供的調試手段,可以查看到程序運行時,這兩個變量的十進制值和十六進制值。首先寫一個如下的C語言控制臺程序:設置斷點:最常用的調試方法之一,使程序在運行時,暫停在某一代碼位置,在Code:Blocks中,設置斷點的方法是在某一行代碼上按F5或在行首欄內單擊鼠標。我們在return 0;這一行

17、上設置斷點。斷點所在行將被Code:Blocks以紅色顯示。接著,運行程序(F9),程序將在斷點處停下來。(請注意兩張圖的不同,前面的圖是運行之前,后面這張是運行中,左邊的箭頭表示運行運行到哪一行)當程序停在斷點的時,我們可以觀察當前代碼片段內,可見的變量。觀察變量的方法很多種,這里我們學習使用 Debug Inspector (調試期檢視),來全面觀察一個變量。以下是調出觀察某一變量的 Debug Inspector 窗口的方法:先確保代碼窗口是活動窗口。(用鼠標點一下代碼窗口)按下Ctrl鍵,然后將鼠標挪到變量 aaaa 上面,你會發(fā)現(xiàn)代碼中的aaaa變藍,并且出現(xiàn)下劃線,效果如網(wǎng)頁中的超

18、鏈接,而鼠標也變成了小手狀:點擊鼠標,將出現(xiàn)變量aaaa的檢視窗口。從該窗口,我可以看到: aaaa :變量名 int :變量的數(shù)據(jù)類型0012FF88:變量的內存地址,請參看5.2 變量與內存地址;地址總是使用十六進制表達 5 :這是變量的值,即 aaaa = 5;0x00000005 :同樣是變量的值,但采用16進制表示。因為是int類型,所以占用4字節(jié)。首先先關閉前面的用于觀察變量aaaa的Debug Inspector窗口。然后,我們用同樣的方法來觀察變量bbbb,它的值為-5,負數(shù)在計算機中使用補碼表示。正如我們所想,-5的補碼為:0xFFFFFFFB。再按一次F9,程序將從斷點繼續(xù)

19、運行,然后結束。 總結:來看看我們主要學了什么:1、我們學會了如何將二、八、十六進制數(shù)轉換為十進制數(shù)。三種轉換方法是一樣的,都是使用乘法。2、我們學會了如何將十進制數(shù)轉換為二、八、十六進制數(shù)。方法也都一樣,采用除法。3、我們學會了如何快速的地互換二進制數(shù)和十六進制數(shù)。要訣就在于對二進制數(shù)按四位一組地轉換成十六進制數(shù)。在學習十六進制數(shù)后,我們會在很多地方采用十六進制數(shù)來替代二進制數(shù)。4、我們學習了原碼、反碼、補碼。把原碼的0變1,1變0,就得到反碼。要得到補碼,則先得反碼,然后加1。以前我們只知道正整數(shù)在計算機里是如何表達,這時我們還知道負數(shù)在計算機里使用其絕對值的補碼表達。比如,-5在計算機中

20、如何表達?回答是:5的補碼。5、最后我們在上機實驗中,這會了如何設置斷點,如何調出Debug Inspector窗口觀察變量。以后我們會學到更多的調試方法。 標準表示: 在數(shù)制使用時,常將各種數(shù)制用簡碼來表示:如十進制數(shù)用D表示或省略;二進制用B來表示;十六進制數(shù)用H來表示。如:十制數(shù)123表示為:123D或者123;二進制數(shù)1011表示為:1011B;十六進制數(shù)3A4表示為:3A4H。另外在編程中十六進制數(shù)也用0x作為開頭。 快捷轉換表格(0100):二進制八進制十進制十六進制0000111110222113331004441015551106661117771000108810011199

21、10101210A10111311B11001412C11011513D11101614E11111715F100002016101000121171110010221812100112319131010024201410101252115101102622161011127231711000302418110013125191101032261A1101133271B1110034281C1110135291D1111036301E1111137311F1000004032201000014133211000104234221000114335231001004436241001014537

22、2510011046382610011147392710100050402810100151412910101052422A10101153432B10110054442C10110155452D10111056462E10111157472F11000060483011000161493111001062503211001163513311010064523411010165533511011066543611011167553711100070563811100171573911101072583A11101173593B11110074603C11110175613D1111107662

23、3E11111177633F100000010064401000001101654110000101026642100001110367431000100104684410001011056945100011010670461000111107714710010001107248100100111173491001010112744A1001011113754B1001100114764C1001101115774D1001110116784E1001111117794F101000012080501010001121815110100101228252101001112383531010100124845410101011258555101011012686561010111127875710110001308858101100113189591011010132905A1011011133915B1011100134925C1011101135935D1011110136945E1011111137955F11000001409660110000114197611100010142986211000111439963110010014410064展開進位制的記數(shù)系統(tǒng)基本進位制二進制三進制四進制五進制六進制七進制八進制九進制十進制十一進制十二進制十三進制十四進制十

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論