python二进制与utf-8编码 | 基础三

2025-04-06T17:00:00

1. 引导

  1. python运行方式
  2. 进制
  3. 计算机单位
  4. 编码

2. python运行方式

  • 脚本式

    • 代码书写
  • 交互式

    • 代码测试
  • pycharm Terminal

3. 进制

  • 二进制
  • 八进制
  • 十六进制

3.1 进制转换

10 进制 整型存在

2,8,16进制,以字符串存在

  • 十进制转二进制,八进制,十六进制

bin(16) 0b10000

oct(16) 0o20

hex(16) 0x10

  • 二进制,八进制,十六进制转十进制

int(’0b’,base=2)

4. 计算机单位

b

Byte

KB

MB

GB

TB

PB

EB

ZB

YB

BB

NB

DB

mbps(mega bit per second)

1mb(1 mega byte ) = 1024 kbyte

5. 编码

  • ascii

    • 编码与系统二进制一一对应
    • 总共2**8=256位 0-255
    • 65A 90Z
  • gbk

    • gb-2312 1980
    • gbk 包含2w+编码 1995
    • 单字节兼容ascii
    • 双字节代表文字,2**16=65536种可能
  • unicode 万国码

    • ucs2 2**16
    • ucs4 2**32

      不足补0
    • ucs4是ucs2的超集,比如emotion 12w+ ucs4才可以被表示
    • 内存中使用unicode,网络传输则不会
  • utf-8

    • 师承unicode,通过压缩unicode来实现,通过判断表中的十六进制来压缩
    • 范围判断 转换模板

      0000~007F 0xxxxxxx

      0080~07FF 110xxxxx 10xxxxxx

      0800~FFFF 1110xxxx 10xxxxxx 10xxxxxx

      10000~10FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

      比如'武' 十六进制在'6B66' 转二进制在 110101101100110 
      判断范围在三位(0800~FFFF),套入模板
      11100110 10101101 10100110
  • 字节 b
# 内存中unicode-utf-8(压缩),以字节形式存储于网络或硬盘中
name = 'alex大王'
data = name.encode('utf-8')
#data = name.encode('gbk')

#写入文件
f = open('1.txt',mode = 'wb')

f.write(data)
f.close()

# utf-8 汉字占用三位,gbk占用两位
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »