回忆上次内容

字节
首先明确字节长什么样子?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打开之后什么样呢?打开文本文档
这文档就是纯文本的如何转化为字节形态呢?xxd
xxd 可以查看文件的二进制形态dump的本意是(倾倒垃圾)这里指的是转储把文件转储为16进制形式汇编代码形式:xxd –r 可以还原回去 :%!xxd 转成字节形态:%!xxd –r 转回文本形态反复横跳...在vim中
转化为字节模式:%!xxd可以想象txt文本总共318K个字符甚至能想到每个字符的状态十六进制数刚好很适合输出字节状态为什么hex对应着16进制呢?hexa-decimal
hexa - 对应着六其实就是六的北方方言发音落实到字母的状态hexa 我们理解了对应着 six那么decimal如何理解呢?decimal
deci- 对应着十分之一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

还没有评论,来说两句吧...