文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

关于python基础数据类型bytes进制转换

2023-05-19 14:22

关注

1. bytes字节串类型介绍:

定义一个字节串:
 	字面量:b=b"he1lo 你好"      [默认编码格式ASCII]
 	类型: b=bytes("字节内容",encoding= "utf-8")    [默认编码格式ASCII]

Python 3新增了bytes 类型,用于代表字节串,是一一个类型。

由于bytes保存的就是原始的字节(二进制格式)数据,因此bytes对象可用于在网络上传输数据,也可用于存储各种二进制格式的文件,比如图片、音乐等文件。

2. 二进制、十进制、十六进制之间的转换:

二进制:
010101, 是电脑识别的一种格式数据
python解析器,帮助我们把我们输入的python语言解析成二进制的数据,供计算机所识别。
例如:如果我们定义的是十进制,十六进制,等语言,需要先转成二进制后,计算机在进行执行。进行数据传递的过程中如果使用二进制进行数据传递的话执行速度会很快

2.1 二进制转十进制:

把二进制数按权展开、相加即得十进制数

在这里插入图片描述

2.2 二进制转十六进制:

十六进制是取四合一。 (注意:四位二进制转成十六进制是从右到左开始转换,不足时补零)

在这里插入图片描述

2.3 十进制转二进制:

十进制数除二取余法,即十进制数除二,余数为权位上的数,得到的商值继续除以二,依次步骤继续向下运算直到商为零为止

在这里插入图片描述

2.4 十进制转十六进制:

间接法:把十进制转成二进制,然后再由二进制转成十六进制

2.5 十六进制转二进制:

十六进制数通过除2取余法,得到二进制数,对每一个十六进制为四个二进制,不足时在最左边补零

在这里插入图片描述

2.6 十六进制转十进制:

把十六进制数按权展开,相加即得十进制数

在这里插入图片描述

3. 字节串和字符串之间的区别:

bytes和str 除操作的数据单元不同之外,它们支持的所有方法都基本相同,bytes也是不可变序列。
字符串(str) 由多个字符组成,以字符为单位进行操作;
字节串(bytes) 由多个字节组成,以字节为单位进行操作。

4. 字节介绍:

计算机底层有两个基本概念:位(bit) 和字节(Byte) ,其中
		bit代表1位,要么是0,要么是1;
		Byte代表1字节,1字节包含8位二进制。
定义一个字节串:“123” 里面有三个字节, 每一个字节由8位二进制构成。两个十六进制组成
				每4位二进制可以用一个十六进制数表示。(一个字节需要两个十六进制的数)每四位相当于4位二进制数。

b’\xe6\x88\x91 \xe7\x88 \xb1Python\xe7\xbc \x96\xe7\xa8\x8b’,
比如: \xe6 就表示1字节,其中\x表示十六进制,e6就是两位的十六进制数。

5. 字节串和字符串之间的转换:

5.1   如果字符串内容都是 ASCII 字符,则可以通过直接在字符串之前添加b来构建字节串值。

 b=b"he1lo"
        print (b)
        # 输出: b"he1lo"

5.2 调用 bytes()函数(其实是bytes的构造方法)将字符串按指定字符集转换成字节串,

    b=bytes("字节内容v,encoding= "utf-8") [默认编码格式ASCII]
        b=bytes("he111o字节内容",encoding="utf-8" )
        print (b)
        # 输出: b' he11lo\xe5\xad\x97\xe8\x8a^ \x82\xe5 \x86\x85\xe5\xae \xb9'

5.3  调用字符串本身的encode()方法将字符串按指定字符集转换成字节串(常用) 如果不指定字符集,默认使用UTF-8 字符集。

   str="nihao你好"
        b=str. encode("utf-8")
        print (b)
        #输出: b' nihao\xe4\xbd\xa0\xe5\xa5\xbd'|

6. 将一个bytes对象转换成字符串(decode(“编码类型” ) ):

str="nihao你好"
	b=str. encode("utf-8")
	str1=b. decode("utf-8" )
	print (str1)
	# 输出:nihao你好

7. 编 码:

Unicode字符集,包括汉字,为两个字节(6位,支持6536个字符编号)。实际使用的UTF-8, UTF-16 GeBK GB2312等其实都属于Unicode字符集。
ASCII码:是用一个字节(8bit 0-255) 中的127个字母表示大小写字母,数字和一些键盘 上有的符号。其余的例如汉字等不能被表示。
为了统各国的编码,减少乱码, 诞生了Unicode, 把所有编码统-到- 套编码中。
为了节约位置以及效率低下等问题。出现了把Unicde编码转化为“可变长编码”的UTF- 8编码。
UTF-8编码(针对中文) .把-一个Cide字符根据不同的数字大小编码成4-6个字节,常用的英文祖母被编码成了1个字节,汉字是3个字节,只有特别偏僻的字才会被编码成4-6个字节.
如果需要传输的文本包含大量的英文字符,UTF-8就能节省空间。(ASCII码可以看成是UTF-8的一 部分, 所以大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作)
GBK:只识别中文 

在这里插入图片描述

8. 开发过程中遇见乱码问题:

python端开发的时候C语言项目c----python端传递数据接收到的数据中文乱码了
需要判断
C语言那边数据是不是用utf-8编码和你接收数据的时候是不是也是通过utf-8

到此这篇关于关于python基础数据类型bytes进制转换的文章就介绍到这了,更多相关python bytes数据类型进制转换内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯