回憶上次內容上次數制可以轉化bin(n)可以把數字轉化為 2進制binary接收一個整數(int)得到一個二進制數形式的字符串數字在計算機中是用二進制存儲的但是展示給我們的時候用的是十進制也就是0-9這10個字符的形式都說字節是計算機存儲的最小單位這些數字在字節里面長什么樣子呢?字節首先明確字節長什么樣子?1 個 字節(byte)正好 8 個 位(bit)如果我們用一個數字來表示一個字節的話需要表示[0,28-1]至少需要3位數字我想要用2位數字得到字節狀態有可能嗎?一分為二把8位分成兩塊前4位后4位每一塊是從多少到多少呢?4位都是0數值為04位都是1數值為15從0到15總共16個數字所以我們需要的是16進制16進制進入 python3 幫助模式我們可以查詢 hexhex 對應 hexadecimal 十六進制help(hex)動手
#得到a的序號ord("a")#輸出97對應的十六進制形式hex(97)#找到a對應的數字對應的十六進制形式hex(ord("a"))0x61就是十六進制的610x是十六進制的前綴標志正如0b是 2 進制數的前綴標志那這個0x61是怎么得到的呢?16進制數字符 a 對應(97) 10進制數(0x61) 16進制數4 位二進制數 對應 1位 十六進制數8 為二進制數 對應 2位 十六進制數8 位(bit) 剛好一個字節(byte)我們會用 hex、bin 把 10 進制數轉化為十六進制形式、二進制形式不過16進制怎么能出現16個數字呢?回憶16進制有多少根手指呢?十六進制16進制需要16根手指這有點可怕啊!!!我們真的需要16根手指頭嗎?會做噩夢的...不過落實到計數上...不怕我們為什么用10進制因為我們有10根手指數樹的結果和手指頭的數量沒有關系2 根 手指頭10 根 手指頭16 根 手指都不會影響數出來的樹的數量樹還是那么多樹只是表示的方式不同可以有比9大的數字嗎?超出我們對于數字的認知了具體怎么表示?比9大的數字可以把所有的數字列出來嗎?所有16進制數字那些字母對應這些超過9的數字呢?16進制在ascii編碼中的小寫字母a對應著(97)10進制數對應著(0b1100001)2進制數對應著(0x61)16進制數我們滿16的時候才進1從0到9都用原來的符號后面沒有符號了用a到f"j" 這個字符對應(6a)16進制數這怎么理解?對應關系1個16進制數(hexadecimal)有4位(bit)1個字節(byte)有8位(bit)1個字節正好對應2位16進制數可以用vim看到abcd這些字母的字節狀態嗎?查看狀態
vi ascii.txt:%!xxd 將文件轉化為字節形態可以看到文件是用 2進制 方式存儲的0x61 - a0x62 - b0x63 - c0x64 - d最后加了個0a字節總共5個字節那可以看看我們的py文件么?py文件再寫經典這段特別熟仿佛寫過2萬多遍可以看到這個純文本py文件的字節狀態嗎?是真的30個字節嗎?字節狀態雖然只有兩行不過能夠看到字符和字節之間的關系差2個字節到達(20)16也就是0x20-2確實是0x1e就是30我們看看稍微大一點的東西安徒生童話
git clone https://github.com/overmind1980/oeasy-python-tutorial.git下載之后這個純文本318K打開之后什么樣呢?打開文本文檔這文檔就是純文本的如何轉化為字節形態呢?xxdxxd 可以查看文件的二進制形態dump的本意是(傾倒垃圾)這里指的是轉儲把文件轉儲為16進制形式匯編代碼形式:xxd –r 可以還原回去 :%!xxd 轉成字節形態:%!xxd –r 轉回文本形態反復橫跳...在vim中轉化為字節模式:%!xxd可以想象txt文本總共318K個字符甚至能想到每個字符的狀態十六進制數剛好很適合輸出字節狀態為什么hex對應著16進制呢?hexa-decimalhexa - 對應著六其實就是六的北方方言發音落實到字母的狀態hexa 我們理解了對應著 six那么decimal如何理解呢?decimaldeci- 對應著十分之一decigram 十分之一克:deci(十分之一)+gram(克)→decigram(十分之一克)decimeter 十分之一米:deci(十分之一)+meter(米)→decimeter (十分之一米)decilitre 十分之一升:deci(十分之一)+liter/litre(升)→decilitre( 十分之一升)decibel 十分之一貝爾:deci(十分之一)+bel (升)→decibel( 十分之一升) db 分貝這些詞根來自于什么呢?decimal這些單詞開始于原始印歐語詞根*dekm隱約可感覺到越往北邊鼻音越重可能是因為需要更長的鼻腔空氣經過更長時間的加溫過程來潤肺鼻腔共鳴引發的共振也可以讓血液比較容易上頭似不似泳意喪頭嗯吶dec+ade 十年decennium 十分之一世紀december(古羅馬歷的十月)類似的還有decagon十角形(deca+gon角)decameter十米(deca+meter米)落實到函數就是hex()怎么用呢?轉化回十進制和二進制是相同的二進制是0b開頭0 代表數字b 代表二進制(<span style="font-size:24px">b</span>inary)十六進制是0x開頭0 代表數字h 代表十六進制(he<span style="font-size:24px">x</span>adecimal)總結這次找到了字符和字節狀態之間的映射對應關系字符對應著二進制字節二進制字節也對應著字符這種字節狀態是用2位16進制數來表示的hex(n)可以把數字轉化為 16進制字符串hexadecimalbin(n)可以把數字轉化為 2進制字符串integer我們根據ascii中的字符序號能夠把字符存儲進計算機的字節當中了終于知道字符對應的字節到底長啥樣了但是說到底為啥要把字符對應成字節呢?我們下次再說!藍橋->https://www.lanqiao.cn/teacher/3584github->https://github.com/overmind1980/oeasy-python-tutorialgitee->https://gitee.com/overmind1980/oeasypython視頻->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy
本文發布于:2023-02-28 20:05:00,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/167765511776095.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:十六進制字符(十六進制字符串轉數字).doc
本文 PDF 下載地址:十六進制字符(十六進制字符串轉數字).pdf
| 留言與評論(共有 0 條評論) |