bytes函数——字节

bytes 函数


描述

bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。

参数

  • 如果 source 为整数,则返回一个长度为 source 的初始化数组;

    In [2]: bytes(10)
    Out[2]: b'x00x00x00x00x00x00x00x00x00x00'
    
    In [7]: for i in a:
       ...:     print(i)
       ...:
    0
    0
    0
    0
    0
    0
    0
    0
    0
    0
    
  • 如果 source 为字符串,则按照指定的 encoding 将字符串转换为字节序列;

    In [8]: b = 'abcde'
    
    # 对字符串转bytes,必须指定encoding
    In [9]: bytes(b)
    ---------------------------------------------------------------------------
    TypeError                                 Traceback (most recent call last)
    <ipython-input-9-de281ca82066> in <module>
    ----> 1 bytes(b)
    
    TypeError: string argument without an encoding
    
    In [10]: c = bytes(b,encoding = 'utf8')
    
    In [11]: c
    Out[11]: b'abcde'
    
  • 如果 source 为可迭代类型,则元素必须为[0 ,255] 中的整数;

    In [18]: d = [1,2,3,4,5]
    
    In [19]: dd = bytes(d)
    
    In [20]: dd
    Out[20]: b'x01x02x03x04x05'
    
    In [21]: for i in dd:
        ...:     print(i)
        ...:
    1
    2
    3
    4
    5
    
    # 256 超出范围
    In [15]: d = [256,1]
    
    In [16]: bytes(d)
    ---------------------------------------------------------------------------
    ValueError                                Traceback (most recent call last)
    <ipython-input-16-efafa46d77e8> in <module>
    ----> 1 bytes(d)
    
    ValueError: bytes must be in range(0, 256)
    
  • 如果 source 为与 buffer 接口一致的对象,则此对象也可以被用于初始化 bytearray。

  • 如果没有输入任何参数,默认就是初始化数组为0个元素。

返回值

返回一个新的 bytes 对象。

字节(Byte,B)是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符 。

一个字节存储8位无符号数,储存的数值范围为0-255。如同字元一样,字节型态的变数只需要用一个位元组(8位元)的内存空间储存 。

相当于一个字符,8位=1字节

字节通常简写为“B”,而位通常简写为小写“b”

数据类型

Byte是从0-255的无符号类型,所以不能表示负数

相关单位

B与bit

数据存储是以“字节”(Byte)为单位,数据传输大多是以“位”(bit,又名“比特”)为单位。

一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位 。

换算

不同数量级间

1字节(Byte)=8位(bit)

1KB( Kilobyte,千字节)=1024B

1MB( Megabyte,兆字节)=1024KB

1GB( Gigabyte,吉字节,千兆)=1024MB

1TB( Trillionbyte,万亿字节,太字节)=1024GB

1PB( Petabyte,千万亿字节,拍字节)=1024TB

1EB( Exabyte,百亿亿字节,艾字节)=1024PB

1ZB(Zettabyte,十万亿亿字节,泽字节)=1024EB

1YB( Yottabyte,一亿亿亿字节,尧字节)=1024ZB

1BB( Brontobyte,千亿亿亿字节)=1024YB

字节顺序

应该注意到,多字节字段中的值是按照大末尾(big- endian)顺序规定的,具体来说就是最高位的字节出现在高位,而低位的字节出现在低位。这会引起工作在Intel平台上的程序员的迷感,因为在 Intel的平台上。数据是按照小末尾(little-endian)顺序存储的,高位的字节出现在低位 [7] 。

原文地址:https://www.cnblogs.com/pythonwl/p/14580949.html