Python实现byte转integer


Posted in Python onJune 03, 2021

摘自convert a string of bytes into an int (python) - Stack Overflow

需求:将形如'y\xcc\xa6\xbb'的byte字符串转化为integer

方法 1 导入struct包

import struct
struct.unpack("<L", "y\xcc\xa6\xbb")[0]

方法 2 python3.2及以上

若byte串采取大端法:

int.from_bytes(b'y\xcc\xa6\xbb', byteorder='big')

若采取小端法,则:

int.from_bytes(b'y\xcc\xa6\xbb', byteorder='little')

方法3 借助十六进制转换

大端法:

s = 'y\xcc\xa6\xbb'
num = int(s.encode('hex'), 16)

小端法:

int(''.join(reversed(s)).encode('hex'), 16)

方法4 使用array包

import array
integerValue = array.array("I", 'y\xcc\xa6\xbb')[0]

其中I用于表示大端或小端,且使用此方法要注意自己使用的python版本。

方法5 自己写函数实现

如:

sum(ord(c) << (i * 8) for i, c in enumerate('y\xcc\xa6\xbb'[::-1]))

又如:

def bytes2int( tb, order='big'):
    if order == 'big': seq=[0,1,2,3]
    elif order == 'little': seq=[3,2,1,0]
    i = 0
    for j in seq: i = (i<<8)+tb[j]
    return i

ps: CSDN的markdown编辑器好难用,写到页面底端就换行错乱,跳字符。

python int 转byte,byte转int

data_byte1 = int(1324).to_bytes(length=2, byteorder='big', signed=True)
#int(参数):参数代表要被转换的数字
#length=2:代表要转换成几个字节
#byteorder='big'代表高位在前,相反little
data_byte2 = int().from_bytes(data_byte1, byteorder='big', signed=True)
print(data_byte1) print(data_byte2)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python  __getattr__与__setattr__使用方法
Sep 06 Python
写了个监控nginx进程的Python脚本
May 10 Python
python中pass语句用法实例分析
Apr 30 Python
Python错误: SyntaxError: Non-ASCII character解决办法
Jun 08 Python
详解python使用Nginx和uWSGI来运行Python应用
Jan 09 Python
使用Python3内置文档高效学习以及官方中文文档
May 19 Python
python语言基本语句用法总结
Jun 11 Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 Python
Python Process多进程实现过程
Oct 22 Python
python编写计算器功能
Oct 25 Python
selenium中get_cookies()和add_cookie()的用法详解
Jan 06 Python
如何在scrapy中集成selenium爬取网页的方法
Nov 18 Python
Python数据分析之绘图和可视化详解
Python数据分析之pandas读取数据
Jun 02 #Python
Python 如何实现文件自动去重
python状态机transitions库详解
Jun 02 #Python
python爬取某网站原图作为壁纸
Python爬虫之自动爬取某车之家各车销售数据
从np.random.normal()到正态分布的拟合操作
You might like
拼音码表的生成
2006/10/09 PHP
php面向对象的方法重载两种版本比较
2008/09/08 PHP
深入phpMyAdmin的安装与配置的详细步骤
2013/05/07 PHP
PHP实现PDO的mysql数据库操作类
2014/12/12 PHP
PHP实现Javascript中的escape及unescape函数代码分享
2015/02/10 PHP
php简单获取目录列表的方法
2015/03/24 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
PHP钩子与简单分发方式实例分析
2017/09/04 PHP
Laravel6.18.19如何优雅的切换发件账户
2020/06/14 PHP
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
Javascript实现页面跳转的几种方式分享
2013/10/26 Javascript
window.open 以post方式传递参数示例代码
2014/02/27 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
JavaScript AOP编程实例
2015/06/16 Javascript
vue 使用Jade模板写html,stylus写css的方法
2018/02/23 Javascript
nodejs多版本管理总结
2018/04/03 NodeJs
深入理解Promise.all
2018/08/08 Javascript
js中值引用和地址引用实例分析
2019/06/21 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
解决pycharm双击但是无法打开的情况
2020/10/31 Javascript
Python开发编码规范
2006/09/08 Python
从零学Python之hello world
2014/05/21 Python
Python对象体系深入分析
2014/10/28 Python
python 3利用Dlib 19.7实现摄像头人脸检测特征点标定
2018/02/26 Python
python带参数打包exe及调用方式
2019/12/21 Python
读取nii或nii.gz文件中的信息即输出图像操作
2020/07/01 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
多视角3D可旋转的HTML5 Logo动画
2016/03/02 HTML / CSS
临床医学大学生求职信
2013/09/28 职场文书
财会专业大学生求职信
2014/09/26 职场文书
委托培训协议书
2014/11/17 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
Mysql MVCC机制原理详解
2021/04/20 MySQL
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
2022/04/29 Servers