zoukankan      html  css  js  c++  java
  • python学习_011

    bytes bytearray

    python3 中引入两个新类型
    str 是字符数据,bytes 和 bytearray 是字节数据,它们都是序列, 可以进行迭代遍历.
    它们都能使用 str类型的通用函数,比如 find() replace() islower() 等,但不能使用 str的格式化操作

    byte

    不可变字节序列

    
    #创建一个 bytes 类型的数据
    a=b"mingyue"   #加上b前缀
    a1=bytes()     #强制转换为bytes 类型
    a3=bytes(10)     #创建10个长度的 bytes 数据
    
    x="123"
    a2=x.encode()   #使用encode 将 str类型解码为 bytes类型
    print(type(a2))
    
    

    编码与解码方法

    str.encode(encoding='UTF-8',errors='strict')
    字符串.encode(编码格式)
    可以将字符串 编码成字节型的数据

    str.encode(encoding='UTF-8',errors='strict')
    字符串.decode(编码格式)
    可将字节型的数据转换成 指定格式的 字符串 默认使用unicode

    bytearray

    字节数组
    可变
    class bytearray([source[, encoding[, errors]]])

    计算机编码格式

    1.ascii 码

    美国标准信息交换码 是最通用的信息交换标准
    ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号,以及在美式英语中使用的特殊控制字符
    后来有了 扩展 ascii 码表

    1. 国标码(gb2312/gbk)

    每个汉字和符号以两个字节来表示.第一个字节称为"高位字节" 第二个字节称为"低位字节" 高位字节 使用了0xa1-0xf7 ,低位字节 使用了 0xa1-0xfe
    那就意味着 一个中文字符 他的最高位 只能 大于 a1 拆成 二进制 即为 10100001 而且它是占两字节的 而普通的 ascii 码 a b c d 只占一个字节
    这种编码方式 是为了让计算机显示 中文 而发明的 现在普遍使用 gbk(gb2312的升级版)

    1. 万国码(unicode)

    兼容更多的语言 无论什么编码,内部都包含ascii编码(也有例外,比如utf-16),它只需单个字节。也就是说,ascii编码是任何其它编码表的子集。但有些编码表强制规定每个字符占多少个字节(比如unicode固定为2个字节),有些编码表动态决定每个字符占多少个字节(比如utf-8是变长的,可能占用1-4个字节空间,存储字母为1个字节,存储中文字符为3个字节)。
    要构建Unicode类型,只需加上u或U前缀。
    现在主流的编程语言都支持 unicode 编码

    关于字节序的记录

    大端存储
    小端存储
    举例:
    0x12345678

    内存中的格式:
    大端: 12 34 56 78
    小端: 78 56 34 12

    intel x86 . windows/linux 使用小端
    网络传输. Mac OS . java虚拟机 使用大端模式

    本文参考链接

    python数据结构bytes和 bytearray
    python bytes和bytearray、编码和解码
    感谢

  • 相关阅读:
    链表实现
    @Aspect
    mybatis plus
    using
    50道题
    梦想,青春,时间
    存储过程!!!
    事务,视图,索引
    高级查询--嵌套和相关,两套分页!!!
    学习笔记
  • 原文地址:https://www.cnblogs.com/shenshuoyaoyouguang/p/13095374.html
Copyright © 2011-2022 走看看