当前位置:  开发笔记 > 编程语言 > 正文

整数(表示位序列)重新解释为Python中的字符数组

如何解决《整数(表示位序列)重新解释为Python中的字符数组》经验,为你挑选了1个好方法。

我写了一些我希望移植到python的C代码,因为我觉得python是一种更好的"概念"语言.

在我的C代码中,我使用内存重新解释来实现我的目标,例如:

sizeof(int)  is 4 byte
sizeof(char) is 1 byte

char c[4]={0x01,0x30,0x00,0x80};
int* i=(int*)c;

*i has the value 0x80003001

同样,如果我有:

int* j = (int*)malloc(sizeof(int));
char* c = (char*)j;
*j = 0x78FF00AA;

c is now {0xAA, 0x00, 0xFF, 0x78}

我想在python中做类似的事情,我意识到我可以使用位操作来完成这个:

chararray=[]
num=1234567890
size=8

while len(chararray) < size:
   char = chr( (num & 255 ) )
   num = num >> 8
   chararray.append(char)

但是我希望有更快的方法来实现这一目标.

python有没有类似于C的联合?



1> Federico A. ..:

您可以使用struct模块:

import struct

# Pack a Python long as if it was a C unsigned integer, little endian
bytes = struct.pack("

阅读文档页面以查找有关数据类型的内容,并注意字节顺序.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有