python之二进制
二进制表示
- 十进制与二进制
- 十进制与八进制
- 字符的二进制表示
- 中文与二进制
- py2 与 py3的编码
- hash哈希
- python中基于hash的数据类型
十进制与二进制
十进制—>二进制,除2取余倒排列
如十进制的5,表示为二进制101
python实现:
d = 5
bin(5)
#"0b101"#将当前二进制数据,转为整型
int("0b101",base=2) # 5
小数部分,则乘2取整正排列
如十进制的0.5,表示为二进制0.1
二进制---->十进制,只需加权求和
如二进制101,其十进制表示为1*22+0*21+1*20=5
十进制与八进制
十进制---->八进制,除8取余倒排列
如十进制的8 ,表示为八进制为0o10
d = 8
oct(d)
#0o10
int("0o10",base=8)
八进制—>十进制,同样加权求和
十进制---->十六进制,same
d = 17
hex(d)
#'0x11'
int("0x11",base=16) #十六进制转十进制,加权求和
#1*16^1 + 1*16^0
字符的二进制表示
字符有对应的ASCII码表,将对应的十进制数,转为二进制
#获取英文字符的二进制
bin(ord("a"))
#'0b1100001',一字节
chr
1byte = 8bit
1Kb = 1024bytes
1Mb = 1024Kb
…
中文与二进制
中文字符有对应的GBK/GB2312/GB18030编码表,对应的十进制,转为二进制。
一个中文字符占两个字节,现在主流为GBK编码。
通用编码方式Unicode,将所有的字符与二进制对应起来,但是每个字符占用两个字节的内存,比ASCII编码多一倍,临时存储在内存中还可以,存入磁盘或者网络传输就很浪费空间。
所以产生了一个utf-8的编码,Unicode Transform Format,节省磁盘、传输时的空间。
内存中的数据–>Unicode编码----2bytes/per char
磁盘中的数据–>UTF-8----1byte for english, 3bytes for chinese
linux命令行下输入locale,查看支持的编码格式
py2 与 py3的编码
py2 内存中为ASCII编码,使用中文需声明
linux/macOS系统中使用utf-8
#!/usr/bin/python2
# -*- coding:utf-8 -*-
print("中文")
windows系统使用gbk编码
py3 内存中为Unicode编码
hash哈希
将不同的输入,哈希计算得出固定长度的输出。
特性:
不可逆
计算速度快,即使文件很大,也不会太影响计算速度
输入的数据类型,必须不可变
用途:
密码加密
文件校验
hash("xxxxx")from hashlib import md5
m = md5()
m.update("xxx".encode())
m.hexdigest()
python中基于hash的数据类型
dict/set
为什么字典查询速度快?
在字典里,每个key都要经过hash计算,对所有的key的hash值进行排序。
在查找某个key的值时,首先计算其hash值,根据其hash值找到对应的value,时间复杂度O(1)。
根据查询到的hash值,得到对应value的索引。
为什么set自动去重?
存入值时,计算其hash值,然后在对应位置存入数据,若该位置没有数据,则插入;否则不插入。
上一篇:python基础之常用操作
下一篇:python文件操纵
python之二进制相关推荐
- python十进制转八进制_怎样用python进行二进制,八进制,十进制转换
Python中进行进制的转换可以通过它的内置函数来实现,今天小编我就来分享一下使用Python进行二进制,十进制,八进制的转换经验. 工具/原料 电脑 Python 方法/步骤 1 第一步,打开电脑的 ...
- python hacklib_【入门】angr:基于python的二进制分析框架
文章难易度:★★★ 文章阅读点/知识点:angr:基于python的二进制分析框架 文章作者:desword
- python中二进制整数_Python程序查找表示二进制整数的必要位数
python中二进制整数 Given an integer number and we have to find necessary bits to represent it in binary in ...
- python中二进制表示_Python中的二进制搜索:直观介绍
python中二进制表示 欢迎 (Welcome) In this article, you will learn how the Binary Search algorithm works behi ...
- python文件合法模式组合_以下选项中,不是Python文件二进制打开模式的合法组合是...
以下选项中,不是Python文件二进制打开模式的合法组合是 答:\"x+\" 建立良好的谈判气氛主要是在( )阶段 答:开局 the ruling class had long b ...
- Python和二进制(1)
一直对这个二进制以及python的处理方式有些模糊.综合查找到资料,理了一遍,清楚了很多. 什么是二进制数据?二进制文件?二进制文件和文本文件的区别 解释1: 这里谈谈文本文件与二进制文件以及C语言读 ...
- Python处理二进制数据文件(大小100M以上),逐步更新
最近在学习Python关于二进制数据文件的读取,把最新的结果记下来,相互学习,进步 看代码: f1 = open(filepath, 'rb') file_data = f1.read() f_len ...
- python:实现二进制补码算法(附完整源码)
python:实现二进制补码算法 def twos_complement(number: int) -> str:"""Take in a negative int ...
- 利用Python实现二进制转化为十进制数字
Python将二进制变为十进制 直接上代码 参考自莫凡的遗传算法 def translate(pop): #数据转换,二进制转十进制a = pop.dot(2 ** np.arange(10)[::- ...
- python:二进制序列类型 --- bytes, bytearray
python:二进制序列类型 --- bytes, bytearray bytes 对象 bytearray 对象 bytes 和 bytearray 操作 操作二进制数据的核心内置类型是 bytes ...
最新文章
- python里的resize_Python玩转蔡徐坤
- vc设备工程师_4注册公用设备工程师专业基础考试真题.
- python可以调用windows资源吗_如何在Windows上用Python调用WinRar?还有问题吗
- 【最全最详细】publiccms常用的代码片段
- 取英文名字的几个规则
- NetAug(网络增强)—Dropout的反面
- 杰克·韦尔奇的101条经典语录
- java weblogic 下载,weblogic 下载 weblogic 12.2.1 for windows 64位的下载地址
- monkeytest方法-20171113
- linux怎么运行idl,科学网—在Scientific linux 7上安装idl83 - 姜小川的博文
- 我的世界起床战争php,我的世界起床战争最新版下载-我的世界起床战争手机版v1.21.5.115731 安卓版 - 极光下载站...
- ant如何形成时间轴和图库_如何排版微信公众平台的文章?
- Excel表格数据的下载
- 家里宽带网络连接第二台路由器实验一
- 成长,必是经历痛苦的过程
- CUDA C++ Programming Guide——编程模型
- 10个最常见的HTML5面试题及答案
- 美通社企业新闻汇总 | 2019.2.27 | 中国大学名次在世界大学排名中继续攀升;吉利2021年发布支持5G量产车型...
- python怎么定义int变量_Python 变量类型 | 菜鸟教程
- 手机端html跑马灯效果,使用css3和js在手机上实现简单的跑马灯效果