把10进制整数30,转换为字节

方法一

chr(30).encode()

结果

方法二

struct.pack('B', 30)

结果

准确地讲,Python没有专门处理字节的数据类型。但由于str既是字符串,又可以表示字节,所以,字节数组=str。而在C语言中,我们可以很方便地用struct、union来处理字节,以及字节和int,float的转换。

在Python中,比方说要把一个32位无符号整数变成字节,也就是4个长度的str,你得配合位运算符这么写:

>>> n = 10240099
>>> b1 = chr((n & 0xff000000) >> 24)
>>> b2 = chr((n & 0xff0000) >> 16)
>>> b3 = chr((n & 0xff00) >> 8)
>>> b4 = chr(n & 0xff)
>>> s = b1 + b2 + b3 + b4
>>> s
'\x00\x9c@c'

非常麻烦。如果换成浮点数就无能为力了。

好在Python提供了一个struct模块来解决str和其他二进制数据类型的转换。

structpack函数把任意数据类型变成字符串:

>>> import struct
>>> struct.pack('>I', 10240099)
'\x00\x9c@c'

官网参考:https://docs.python.org/2/library/struct.html#format-characters

最新文章

  1. jquery简单的轮播效果!
  2. Linux学习笔记19-ssh远程管理
  3. 函数柯里化(Currying)示例
  4. documentElement和ownerDocument和ownerElement
  5. pandas进行数据分析需要的一些操作
  6. Visual Studio 2012 离线升级包的制作
  7. bzoj2012: [Ceoi2010]Pin
  8. Android应用加入微信分享
  9. Arrays.asList的使用及异常问题
  10. Core Python Programming一书中关于深浅拷贝的错误
  11. UNIX环境高级编程——进程间通讯方法整理
  12. ECharts前端图形展示
  13. APP测试重点(转载)
  14. Linux如何查看机器的配置信息
  15. django admin 设置(转载https://www.cnblogs.com/wumingxiaoyao/p/6928297.html)
  16. spark 常用技巧总结2
  17. Wasserstein距离
  18. Oracle 11g常用管理命令(用户、表空间、权限)
  19. Repeater控件的分页实现
  20. 什么是ground truth(GT)

热门文章

  1. Redis【3】其他部分~
  2. 一、H5(移动端)前端使用input type=file 上传图片,调用相机和相册
  3. 新手的Linux zcat命令示例
  4. Linux下单机部署ELK日志收集、分析环境
  5. SpringBootMVC01——A simple SpringBootMVC Sample
  6. source insight支持查看makefile、kconfig以及.s代码方法
  7. 流式布局和viewport
  8. 【react学习一】首先先create-react-app 配置less、sass
  9. eclipse安装hibernate tools插件
  10. pyqt5-QFrame边框样式