二进制表示

  • 十进制与二进制
  • 十进制与八进制
  • 字符的二进制表示
  • 中文与二进制
  • 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之二进制相关推荐

  1. python十进制转八进制_怎样用python进行二进制,八进制,十进制转换

    Python中进行进制的转换可以通过它的内置函数来实现,今天小编我就来分享一下使用Python进行二进制,十进制,八进制的转换经验. 工具/原料 电脑 Python 方法/步骤 1 第一步,打开电脑的 ...

  2. python hacklib_【入门】angr:基于python的二进制分析框架

    文章难易度:★★★ 文章阅读点/知识点:angr:基于python的二进制分析框架 文章作者:desword

  3. python中二进制整数_Python程序查找表示二进制整数的必要位数

    python中二进制整数 Given an integer number and we have to find necessary bits to represent it in binary in ...

  4. python中二进制表示_Python中的二进制搜索:直观介绍

    python中二进制表示 欢迎 (Welcome) In this article, you will learn how the Binary Search algorithm works behi ...

  5. python文件合法模式组合_以下选项中,不是Python文件二进制打开模式的合法组合是...

    以下选项中,不是Python文件二进制打开模式的合法组合是 答:\"x+\" 建立良好的谈判气氛主要是在( )阶段 答:开局 the ruling class had long b ...

  6. Python和二进制(1)

    一直对这个二进制以及python的处理方式有些模糊.综合查找到资料,理了一遍,清楚了很多. 什么是二进制数据?二进制文件?二进制文件和文本文件的区别 解释1: 这里谈谈文本文件与二进制文件以及C语言读 ...

  7. Python处理二进制数据文件(大小100M以上),逐步更新

    最近在学习Python关于二进制数据文件的读取,把最新的结果记下来,相互学习,进步 看代码: f1 = open(filepath, 'rb') file_data = f1.read() f_len ...

  8. python:实现二进制补码算法(附完整源码)

    python:实现二进制补码算法 def twos_complement(number: int) -> str:"""Take in a negative int ...

  9. 利用Python实现二进制转化为十进制数字

    Python将二进制变为十进制 直接上代码 参考自莫凡的遗传算法 def translate(pop): #数据转换,二进制转十进制a = pop.dot(2 ** np.arange(10)[::- ...

  10. python:二进制序列类型 --- bytes, bytearray

    python:二进制序列类型 --- bytes, bytearray bytes 对象 bytearray 对象 bytes 和 bytearray 操作 操作二进制数据的核心内置类型是 bytes ...

最新文章

  1. python里的resize_Python玩转蔡徐坤
  2. vc设备工程师_4注册公用设备工程师专业基础考试真题.
  3. python可以调用windows资源吗_如何在Windows上用Python调用WinRar?还有问题吗
  4. 【最全最详细】publiccms常用的代码片段
  5. 取英文名字的几个规则
  6. NetAug(网络增强)—Dropout的反面
  7. 杰克·韦尔奇的101条经典语录
  8. java weblogic 下载,weblogic 下载 weblogic 12.2.1 for windows 64位的下载地址
  9. monkeytest方法-20171113
  10. linux怎么运行idl,科学网—在Scientific linux 7上安装idl83 - 姜小川的博文
  11. 我的世界起床战争php,我的世界起床战争最新版下载-我的世界起床战争手机版v1.21.5.115731 安卓版 - 极光下载站...
  12. ant如何形成时间轴和图库_如何排版微信公众平台的文章?
  13. Excel表格数据的下载
  14. 家里宽带网络连接第二台路由器实验一
  15. 成长,必是经历痛苦的过程
  16. CUDA C++ Programming Guide——编程模型
  17. 10个最常见的HTML5面试题及答案
  18. 美通社企业新闻汇总 | 2019.2.27 | 中国大学名次在世界大学排名中继续攀升;吉利2021年发布支持5G量产车型...
  19. python怎么定义int变量_Python 变量类型 | 菜鸟教程
  20. 手机端html跑马灯效果,使用css3和js在手机上实现简单的跑马灯效果

热门文章

  1. 中国企业家:TD-SCDMA的坎坷商业路
  2. 数据结构课程 -- 学期总结
  3. 鸿蒙系统吓坏谷歌,华为被谷歌正式“除名”,鸿蒙系统将正式登场绝地反击!...
  4. 线程的学习,和线程的相关概念及多线程的学习指引
  5. ionic 项目文件下载总结
  6. java获取中文拼音或拼音首字母
  7. uniapp使用阿里字体图标库
  8. Windows 资源保护找到了损坏文件,但其中有一些文件无法修复
  9. 2022苹果开发者账号续费问题
  10. Android安装软件的后缀,apk是什么文件,后缀是apk是什么文件