我正在开发一个程序,其中将一些数据存储为整数并按位进行处理。例如,我可能会收到数字48,该数字将逐位处理。通常,整数的字节序取决于整数的机器表示形式,但是Python是否做任何事情来确保ints始终为little-
endian?还是我需要像在C中一样检查字节序,然后针对这两种情况编写单独的代码?
我问是因为我的代码运行在Sun机器上,尽管现在运行的代码使用Intel处理器,但将来我可能不得不切换到装有Sun处理器的机器,我知道这是big-
endian。
Python的int
字节序与其运行的处理器相同。该struct
模块可让您以本机,小端或大端方式将字节blob转换为int(反之亦然,以及其他一些数据类型),具体取决于您选择的格式字符串:以@
或不使用端字符开始格式使用本地字节序(和本地大小-
其他所有大小都使用标准大小),“〜”表示本地,“ <”表示小端,“>”或“!” 对于大端。
这是逐字节而不是逐位的;我不确定在这种情况下进行逐位处理的确切含义,但是我认为可以类似地进行处理。
对于在简单情况下的快速“批量”处理,还请考虑数组模块-fromstring
和tostring
方法可以快速处理大量字节,并且该byteswap
方法可以使您获得“其他”字节序(自然到非自然,反之亦然)
,又一次快速处理大量项目(整个数组)。
问题内容: 如何在Python中表示字节数组(如Java中的byte [])?我需要使用gevent通过电线发送它。 问题答案: 在Python 3中,我们使用对象,在Python 2中也称为。 我发现使用该模块更方便… 您还可以使用文字…
问题内容: 在Java中,我们可以做 但是为什么我们不能将相同的参数传递给接受函数 它给出以下错误 PS:可能是一个愚蠢的问题,我想我需要再次修改基础知识。 谢谢。 问题答案: 硬编码的初始化值在Java中有些特殊-假定它们对要初始化的变量的类型具有强制性。本质上,第一段代码实际上是这样的: 如果你这样做了… …您不会收到该错误,但如果不这样做,则默认情况下将创建一个,并且不会自动将其强制转换。
如何在java中将字节数组转换为int。我正在构建蓝牙应用程序,我在其上收到字节数组中的消息,然后将其转换为字符串,它已成功转换,但我也希望它以整数形式存在
问题内容: 在python中,我得到了一个64位整数。该整数是通过采用几个不同的8位整数并将它们混搭为一个64位巨型整数而创建的。再次将它们分开是我的工作。 例如: 所以我想做的是获取我的源代码并返回一个长度为8的数组,其中数组中的每个int都是上面列出的int。 我打算使用,但老实说,阅读文档并不清楚我将如何实现。 问题答案: 在Python 2.x中,返回一个字节字符串。将其转换为整数数组很容
问题内容: 我得到一个整数: 当我使用方法: 给出: 但我想要一个字节数组: 我该怎么做? 问题答案: 使用Java NIO的ByteBuffer非常简单: 输出:
问题内容: 我正在Python中测试vs。我不明白某些差异的原因。 一个迭代器返回的字符串: 给出: 但是迭代器返回s: 给出: 为什么会有所不同? 我想编写可以很好地转换为Python 3的代码。那么,Python 3中的情况是否相同? 问题答案: 在Python中,2.6字节只是str的别名 。 引入此“伪类型”是为了(部分地)准备要与Python 3.0转换/兼容的程序(和程序员!),在Py