乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      第2章 一些數(shù)據(jù)單位(X86匯編教程)

       共同成長888 2015-07-19

      第2章 一些數(shù)據(jù)單位(X86匯編教程) 

      本教程目錄 http://www./mcu/2619.html
            這章主要講電腦里數(shù)的單位,可能會寫得比較難以理解,但是這章很重要.

       
       
      前面說道,2進制(因為bit,中文比特),也就是1和0組成的數(shù)字,每8個比特為1個字節(jié)(英文叫做byte).
      在電腦中比特必須按照字節(jié)的方式對齊,也就是說,不可能出現(xiàn)內(nèi)存中一段數(shù)據(jù)只有1比特這樣的情況,一次性操作的數(shù)據(jù)最少為1個字節(jié),也就是8個比特.從這方面來看,字節(jié)才算是電腦中的最小數(shù)據(jù)單位.
       
      在電腦里,幾乎一切東西右數(shù)字構(gòu)成.由字節(jié)為基本單位.我們以字節(jié)方式查看一下圖片音樂之類的文件看看吧:
      這里,介紹一個工具,WinHEX,相信很多人都已經(jīng)認識了.照顧一下不認識的同學,在這里隨便講講......
      #WINHEX.rar
       
      啟動WinHEX:

       



       

      最上邊的菜單欄,文件->打開

       

       


       

       

       

      選中你要打開的文件.你將看到如下內(nèi)容:

       


       

      我用WinHEX打開了一個PNG圖片文件.

      最上邊灰色那里,是顯示你打開的文件的文件名.已經(jīng)打開了一個PNG文件.

      白色區(qū)的offset豎排(也就是那些8個16進制數(shù)字排列在一起的那一框)為當前行第一個字節(jié)的偏移地址呢?偏移地址,是一個字節(jié)的距離第一個字節(jié)的長度 (以字節(jié)為單位).順帶一提,在電腦里有些東西的統(tǒng)計是以0開始的,我們生活中數(shù)數(shù)是1...2...3但是在電腦中有時是從0開始的,0...1...2...3學過高級語言的可能已經(jīng)習慣了,高手的代碼里經(jīng)常出現(xiàn)把某某數(shù)字加1或者減1就是為了這樣.

      這樣,我們的第一個字節(jié)的偏移為0.偏移豎排表示了第一個字節(jié)的偏移,偏移橫排則可以確定每個字節(jié)的偏移.

      算法:

      當前行的偏移豎排處的數(shù)值+你要計算的那個字節(jié)在偏移橫排對應的值=你要計算的那個字節(jié)的偏移


       

      比如:第3行第7個字節(jié).

      第3行偏移豎排處的值為00000020偏移橫排值為6(為什么第7個數(shù)字的橫排值會是6?沒搞錯喲,記得前面說的從0開始嗎?從0開始計算,第7個字節(jié)為6喲!以后會經(jīng)常出現(xiàn)這樣的情況,匯編學久了就習慣了)

      加起來就是26H(注意:16進制的喲!)

       

      最右邊就是ASCII解碼了,什么是ASCII呢?那是一種只有英文字母,數(shù)字,標點符號的文本編碼(文本編碼:用數(shù)字表示字符.)正常的ASCII只有一個字節(jié),最右邊就是對ASCII進行解析的區(qū)域,它能解析出這個字節(jié)和哪個字符的ASCII碼相同,并顯示出那個字符,如果那個字節(jié)沒有對應的字符則顯示小數(shù)點.

       
      好了,關(guān)于WinHEX的講解就到這里了.繼續(xù)講數(shù)據(jù)單位.
      之前說到,從某種意義上來說字節(jié)才是最小的單位.接著說說比字節(jié)大的單位.
      字 (WORD),1個字型數(shù)據(jù)有2個字節(jié),在文本編碼中,word才是表示一個字符的最佳單位.因為字節(jié)(byte)只能表示0-255之間的數(shù)字(用計算器把2進制的8個1轉(zhuǎn)換成10進制看看)而就拿中文來說吧.幾千個中文,最大才255的字節(jié)型怎么夠呢?所以,用字形(WORD)有16位2進制=65536(最大值65535,但是,從0開始啊!別把0丟了)種可能幾千個中文完全夠用了.所以中文編碼正常的是用2個字節(jié)(也就是"字"表示一個文字),可以做一個實驗:用記事本輸入一個中文,然后保存下來,用WinHEX打開看看.

       
      然后就是雙字(DWORD)了,顧名思義,就是2個字形數(shù)據(jù)合一起,有32比特,可能有人已經(jīng)想到了,32位系統(tǒng)能一次性計算一個雙字數(shù)據(jù),但是不要想成雙字是 32位系統(tǒng)獨有的呀,曾經(jīng)的16位MS-DOS系統(tǒng)也是能有雙字型數(shù)據(jù)的喲!所謂字和雙字只是邏輯上的.完全能把字形數(shù)據(jù)當作2個排列在一起的字節(jié)看待, 雙字也是,可以當作是4個字節(jié)看待.

       
      .這些都是小單位.說說大點的單位吧.

       
      KB,在某些地方是1000字節(jié)的意思,但大多數(shù)時候是指1024個字節(jié)
      MB,代表1000KB或1024KB(大多數(shù)代表1024KB)
      GB,1000MB或1024MB
      TB,1000GB或1024GB(TB可是寫這教程的最近幾年才開始使用的...似乎很多人都還不知道有這個單位呢,,)

       
      在大家買手機記憶卡的時候是不是有出現(xiàn)過明明買的2G的卡,打開一看只有1.8G呢?實際上這是算法不同造成的.看到這里,大家都知道從KB開始,數(shù)據(jù)有 1000和1024這2種進制.廠家用的就是1000進制而我們用的就是1024進制,所以,我們看到的記憶卡容量通常比卡上表示的小.按照以上方法,計算一下,你會發(fā)現(xiàn),你買的卡的空間不但沒有小于卡上面寫的,反而還大了一點呢!

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多