最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[oeasy]python0015_十六進(jìn)制_hexadecimal_字節(jié)形態(tài)_hex函數(shù)

2022-11-15 16:48 作者:oeasy  | 我要投稿

回憶上次內(nèi)容

  • 上次數(shù)制可以轉(zhuǎn)化

    • binary

    • 接收一個(gè)整數(shù)(int)

    • 得到一個(gè)二進(jìn)制數(shù)形式的字符串

    • bin(n)可以把數(shù)字轉(zhuǎn)化為 2進(jìn)制

  • 數(shù)字在計(jì)算機(jī)中是用二進(jìn)制存儲的

    • 但是展示給我們的時(shí)候用的是十進(jìn)制

  • 也就是0-9這10個(gè)字符的形式

  • 都說字節(jié)是計(jì)算機(jī)存儲的最小單位

  • 這些數(shù)字在字節(jié)里面長什么樣子呢???

字節(jié)

  • 首先明確字節(jié)長什么樣子?

  • 1 個(gè) 字節(jié)(byte)

    • 正好 8 個(gè) 位(bit)

  • 如果我們用一個(gè)數(shù)字來表示一個(gè)字節(jié)的話

  • 需要表示[0,28-1]

  • 至少需要3位數(shù)字

  • 我想要用2位數(shù)字得到字節(jié)狀態(tài)

  • 有可能嗎?

一分為二

  • 把8位分成兩塊

    • 前4位

    • 后4位

  • 每一塊是從多少到多少呢?

  • 4位都是0

    • 數(shù)值為0

  • 4位都是1

    • 數(shù)值為15

  • 從0到15總共16個(gè)數(shù)字

  • 所以我們需要的是16進(jìn)制

16進(jìn)制

  • 進(jìn)入 python3 幫助模式

  • 我們可以查詢 hex

    • hex 對應(yīng) hexadecimal 十六進(jìn)制

  • help(hex)

動手

#得到a的序號ord("a")#輸出97對應(yīng)的十六進(jìn)制形式hex(97)#找到a對應(yīng)的數(shù)字對應(yīng)的十六進(jìn)制形式hex(ord("a"))

  • 0x61就是十六進(jìn)制的61

    • 0x是十六進(jìn)制的前綴標(biāo)志

    • 正如0b是 2 進(jìn)制數(shù)的前綴標(biāo)志

  • 那這個(gè)0x61是怎么得到的呢?

16進(jìn)制數(shù)

  • 字符 a 對應(yīng)

    • (97) ?10進(jìn)制數(shù)

    • (0x61) 16進(jìn)制數(shù)

  • 4 位二進(jìn)制數(shù) 對應(yīng) 1位 十六進(jìn)制數(shù)

  • 8 為二進(jìn)制數(shù) 對應(yīng) 2位 十六進(jìn)制數(shù)

  • 8 位(bit) 剛好一個(gè)字節(jié)(byte)

  • 我們會用 hex、bin 把 10 進(jìn)制數(shù)轉(zhuǎn)化為

    • 十六進(jìn)制形式、二進(jìn)制形式

  • 不過16進(jìn)制怎么能出現(xiàn)16個(gè)數(shù)字呢?

回憶

  • 16進(jìn)制有多少根手指呢?

十六進(jìn)制

  • 16進(jìn)制需要16根手指

  • 這有點(diǎn)可怕?。。。?/p>

  • 我們真的需要16根手指頭嗎?

  • 會做噩夢的...

  • 不過落實(shí)到計(jì)數(shù)上...

不怕

  • 我們?yōu)槭裁从?0進(jìn)制

    • 因?yàn)槲覀冇?0根手指

  • 數(shù)樹的結(jié)果和手指頭的數(shù)量沒有關(guān)系

    • 2 根 手指頭

    • 10 根 手指頭

    • 16 根 手指

  • 都不會影響數(shù)出來的樹的數(shù)量

  • 樹還是那么多樹

  • 只是表示的方式不同

  • 可以有比9大的數(shù)字嗎?

  • 超出我們對于數(shù)字的認(rèn)知了

  • 具體怎么表示?

比9大的數(shù)字

  • 可以把所有的數(shù)字列出來嗎?

所有16進(jìn)制數(shù)字

  • 那些字母對應(yīng)這些超過9的數(shù)字呢?

16進(jìn)制

  • 在ascii編碼中的小寫字母a

    • 對應(yīng)著(97)10進(jìn)制數(shù)

    • 對應(yīng)著(0b1100001)2進(jìn)制數(shù)

    • 對應(yīng)著(0x61)16進(jìn)制數(shù)

  • 我們滿16的時(shí)候才進(jìn)1

  • 從0到9都用原來的符號

  • 后面沒有符號了

  • 用a到f

  • "j" 這個(gè)字符對應(yīng)

    • (6a)16進(jìn)制數(shù)

  • 這怎么理解?

對應(yīng)關(guān)系

  • 1個(gè)16進(jìn)制數(shù)(hexadecimal)有4位(bit)

  • 1個(gè)字節(jié)(byte)有8位(bit)

  • 1個(gè)字節(jié)

    • 正好對應(yīng)2位16進(jìn)制數(shù)

  • 可以用vim看到

    • abcd這些字母的字節(jié)狀態(tài)嗎?

查看狀態(tài)

vi ascii.txt

  • :%!xxd 將文件轉(zhuǎn)化為字節(jié)形態(tài)

  • 可以看到文件是用 2進(jìn)制 方式存儲的

    • 0x61 - a

    • 0x62 - b

    • 0x63 - c

    • 0x64 - d

    • 最后加了個(gè)0a字節(jié)

  • 總共5個(gè)字節(jié)

  • 那可以看看我們的py文件么?

py文件

  • 再寫經(jīng)典

  • 這段特別熟

  • 仿佛寫過2萬多遍

  • 可以看到這個(gè)純文本py文件的字節(jié)狀態(tài)嗎?

  • 是真的30個(gè)字節(jié)嗎?

字節(jié)狀態(tài)

  • 雖然只有兩行

  • 不過能夠看到字符和字節(jié)之間的關(guān)系

  • 差2個(gè)字節(jié)到達(dá)(20)16

    • 也就是0x20-2

    • 確實(shí)是0x1e

    • 就是30

  • 我們看看稍微大一點(diǎn)的東西

安徒生童話

git clone https://github.com/overmind1980/oeasy-python-tutorial.git

  • 下載之后

  • 這個(gè)純文本318K

  • 打開之后什么樣呢?

打開文本文檔

  • 這文檔就是純文本的

  • 如何轉(zhuǎn)化為字節(jié)形態(tài)呢?

xxd

  • xxd 可以查看文件的二進(jìn)制形態(tài)

    • dump的本意是(傾倒垃圾)

    • 這里指的是轉(zhuǎn)儲

    • 把文件轉(zhuǎn)儲為16進(jìn)制形式匯編代碼形式

  • :xxd –r 可以還原回去 ??

    • :%!xxd 轉(zhuǎn)成字節(jié)形態(tài)

    • :%!xxd –r 轉(zhuǎn)回文本形態(tài)

  • 反復(fù)橫跳...

在vim中

  • 轉(zhuǎn)化為字節(jié)模式

    • :%!xxd

  • 可以想象txt文本

    • 總共318K個(gè)字符

    • 甚至能想到每個(gè)字符的狀態(tài)

  • 十六進(jìn)制數(shù)剛好很適合輸出字節(jié)狀態(tài)

  • 為什么hex對應(yīng)著16進(jìn)制呢?

hexa-decimal

  • hexa - 對應(yīng)著六

    • 其實(shí)就是六的北方方言發(fā)音落實(shí)到字母的狀態(tài)

  • hexa 我們理解了

    • 對應(yīng)著 six

  • 那么decimal如何理解呢?

decimal

  • deci- 對應(yīng)著十分之一

    • decigram 十分之一克:deci(十分之一)+gram(克)→decigram(十分之一克)

    • decimeter 十分之一米:deci(十分之一)+meter(米)→decimeter (十分之一米)

    • decilitre 十分之一升:deci(十分之一)+liter/litre(升)→decilitre( 十分之一升)

    • decibel 十分之一貝爾:deci(十分之一)+bel (升)→decibel( 十分之一升) db 分貝

  • 這些詞根來自于什么呢?

decimal

  • 這些單詞開始于原始印歐語詞根*dekm

  • 隱約可感覺到越往北邊鼻音越重

    • decennium 十分之一世紀(jì)

    • 似不似泳意喪頭

    • 嗯吶

    • 可能是因?yàn)樾枰L的鼻腔

    • 空氣經(jīng)過更長時(shí)間的加溫過程來潤肺

    • 鼻腔共鳴引發(fā)的共振也可以讓血液比較容易上頭

    • dec+ade 十年

    • december(古羅馬歷的十月)

    • 類似的還有

      • decagon十角形(deca+gon角)

      • decameter十米(deca+meter米)

    • 落實(shí)到函數(shù)就是hex()

    • 怎么用呢?

    轉(zhuǎn)化回十進(jìn)制

    • 和二進(jìn)制是相同的

    • 二進(jìn)制是0b開頭

      • 0 代表數(shù)字

      • b 代表二進(jìn)制(<span style="font-size:24px">b</span>inary)

    • 十六進(jìn)制是0x開頭

      • 0 代表數(shù)字

      • h 代表十六進(jìn)制(he<span style="font-size:24px">x</span>adecimal)

    總結(jié)

    • 這次找到了字符和字節(jié)狀態(tài)之間的映射對應(yīng)關(guān)系

      • 字符對應(yīng)著二進(jìn)制字節(jié)

      • 二進(jìn)制字節(jié)也對應(yīng)著字符

    • 這種字節(jié)狀態(tài)是用2位16進(jìn)制數(shù)來表示的

    • hex(n)可以把數(shù)字轉(zhuǎn)化為 16進(jìn)制字符串

      • hexadecimal

    • bin(n)可以把數(shù)字轉(zhuǎn)化為 2進(jìn)制字符串

      • integer

    • 我們根據(jù)ascii中的字符序號

    • 能夠把字符存儲進(jìn)計(jì)算機(jī)的字節(jié)當(dāng)中了

    • 終于知道字符對應(yīng)的字節(jié)到底長啥樣了

    • 但是說到底

    • 為啥要把字符對應(yīng)成字節(jié)呢???

    • 我們下次再說!??

    • 藍(lán)橋->https://www.lanqiao.cn/teacher/3584

    • github->https://github.com/overmind1980/oeasy-python-tutorial

    • gitee->https://gitee.com/overmind1980/oeasypython

    • 視頻->https://www.bilibili.com/video/BV1CU4y1Z7gQ 作者:oeasy



    [oeasy]python0015_十六進(jìn)制_hexadecimal_字節(jié)形態(tài)_hex函數(shù)的評論 (共 條)

    分享到微博請遵守國家法律
    博兴县| 女性| 台北市| 井研县| 马龙县| 琼结县| 晋宁县| 荆门市| 石台县| 湾仔区| 德令哈市| 武夷山市| 开鲁县| 金平| 新邵县| 望奎县| 陵水| 蓝山县| 乌兰察布市| 大荔县| 娄底市| 双辽市| 南木林县| 凤阳县| 喀什市| 开封市| 定边县| 桐乡市| 卫辉市| 竹北市| 彰武县| 黄冈市| 泽普县| 吴旗县| 潞城市| 棋牌| 南京市| 上蔡县| 洛隆县| 桓仁| 太仓市|