技术标签: python中合法的二进制整数
低于a和b(十六进制),表示二进制补码有符号二进制数.
例如:
a = 0x17c7cc6e
b = 0xc158a854
现在我想知道一个&的签名代表.基础10中的b.抱歉,我是一名低级程序员,也是python的新手;问这个问题感觉非常愚蠢.我不关心额外的图书馆,但答案应该简单明了.背景:a& b是从UDP分组中提取的数据.我无法控制格式.所以请不要给我一个答案,假设我可以事先改变那些变量的格式.
我转换了一个& b用以下内容进入以下内容:
aBinary = bin(int(a, 16))[2:].zfill(32) => 00010111110001111100110001101110 => 398969966
bBinary = bin(int(b, 16))[2:].zfill(32) => 11000001010110001010100001010100 => -1051154348
我试图做这样的事情(不起作用):
if aBinary[1:2] == 1:
aBinary = ~aBinary + int(1, 2)
在python中执行此操作的正确方法是什么?
解决方法:
您至少必须知道数据的宽度.例如,0xc158a854有8个十六进制数字,因此它必须至少为32位宽;它似乎是一个无符号的32位值.我们可以使用一些按位操作来处理它:
In [232]: b = 0xc158a854
In [233]: if b >= 1<<31: b -= 1<<32
In [234]: b
Out[234]: -1051154348L
这里的L标志着Python 2已经切换到将值作为long处理;它通常并不重要,但在这种情况下表示我一直在处理此安装的公共int范围之外的值.从诸如UDP分组的二进制结构中提取数据的工具是struct.unpack;如果您只是告诉它您的值是首先签名的,它将产生正确的值:
In [240]: s = '\xc1\x58\xa8\x54'
In [241]: import struct
In [242]: struct.unpack('>i', s)
Out[242]: (-1051154348,)
假设两个补码表示;一个补码(例如UDP中使用的校验和),符号和幅度,或IEEE 754浮点数是一些不太常见的数字编码.
标签:python,python-2-7,hex,binary
来源: https://codeday.me/bug/20190717/1490315.html
需要刷新页面的, 非无刷新联动.前台随便弄的:省:市:区:后台也随便弄的: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.
python中的super( test, self).__init__()首先找到test的父类(比如是类A),然后把类test的对象self转换为类A的对象,然后“被转换”的类A对象调用自己的__init__函数
Kubernetes中支持的所有磁盘挂载卷简介发表于 2018年1月26日Weihai Feb 10,20167400 字 | 阅读需要 15 分钟容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像...
Python是时下特别流行的开发语言,没有接触过得朋友可能觉得很高深,其实她的语法特别简单易学, 下面给大家来一段简单的代码,看看她能做什么,大家可以拿来整蛊一下你身边的朋友.在快乐中学习编程知识. 我们要做的就是在一个设定的时间内锁定电脑的鼠标和键盘, 14行代码, 设定好启动时间和次数, 在你朋友离开的时候悄悄在她(他)电脑上运行, 到了设定的时间,她的电脑就会像中了邪一样不听使唤了...
A - Jungle Roads POJ - 1251( 最小生成树 kruskal )The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra roads between villages some years ago. ...
android webview 在3.0+后显示flash要启用硬件加速,开启硬件加速也能够使绘制更加平滑。 开启硬件加速是在manifest中加入: android:hardwareAccele...
之前在macbook上使用lipo命令的时候很正常dan's
前言Vim是linux操作系统的一款非常强大的编辑器,配置Vim就是要让其形成一个像VS一样的IDE集成环境。所以为了能在linux下实现高效编程和开发,Vim的配置是必须要完成的一项任务。然而,对linux初学者而言,这无非是一个难度不小的挑战。但几乎每个初学者接触linux时,都会被要求配置vim,在网上搜索“vim配置”就会出现很多文章:网上诸如此类的教程有很多,给出的效果图也很高大上(所有在
今天分享一个手机应用主界面的选项卡页面,可能很多朋友不理解什么叫选项卡界面,那么接下来举几个栗子:大家都熟悉QQ这个应用软件,那么整个软件其实就分为三大类,消息,联系人,动态,点击界面的最下面的三个进行切换不同的页面,那么这三个就称为选项卡,再比如微信:微信软件的主界面也是这种结构,只不过它下面是四个选项卡,微信,通讯录,发现,我,如果大家观察的比较仔细一点,有些软件也可能会出现五个选项卡,甚至有些软件的选项卡不在界面的底部,可能在界面的顶部。所有在手机和平板等移动设备中,这个选项卡的功能使用率非
·赋值运算符①可进行连续赋值操作,例:a = b = c = 20②可进行加减等运算赋值,例:a = 20;b = a + 10·算术运算符乘法‘*’可与字符串进行连接,例:5 * ‘abc’,结果会输出5个abc 除法‘/’and‘//’两种,‘/’表示普通除法,与平常数学计算相同,除不尽会有小数部分;‘//’整除。(注意:不允许使用0作为除数) 求余‘%’,可以对浮点型数据...
栈和队列面试题(c语言实现) 1.实现一个栈,要求实现Push(入栈)、Pop(出栈)、Min(返回最小值)的时间复杂度为O(1). 2.使用两个栈实现一个队列 3.使用两个队列实现一个栈 4.元素出栈、入栈的合法性。如入栈的序列(1,2,3,4,5),出栈序列为(4,5,3,2,1) 5.一个数组实现两个共享栈 1.实现一个栈,要求实现Push(入栈)...
官网后台又加一个新需求,那就接上一篇的接着说,在 Vue 中使用 Tinymce 富文本编辑器 + 上传图片到七牛确保引入了media插件import 'tinymce/plugins/media'在init数据源中添加media data() { return { mediaUploaded: false, //有没有上传完成 resVideo: '', //返回的视频url init: { .