bytes函数——字节
bytes 函数
描述
bytes 函数返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。
参数
-
如果 source 为整数,则返回一个长度为 source 的初始化数组;
In [2]: bytes(10) Out[2]: b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 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'\x01\x02\x03\x04\x05' 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] 。