回忆上次内容上次数制可以转化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,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/167765511776095.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:十六进制字符(十六进制字符串转数字).doc
本文 PDF 下载地址:十六进制字符(十六进制字符串转数字).pdf
留言与评论(共有 0 条评论) |