Как можно интерпретировать строку Python 2.7 как целое число, как в массиве C char? - PullRequest
0 голосов
/ 03 мая 2020

В C на массив символов может ссылаться int * или приведение, которое интерпретируется как целочисленное значение. Вот небольшой пример программы:

#include <stdio.h>

int main() {
   char *str = "AABB";
   int *i = (int *)str;
   printf("int value: %d\n", *i);
   return 0;
}

Это выводит int value: 1111638337, что составляет 0x42424141.

Как мне добиться этого в Python 2.7? Я знаю, что могу использовать ord () и затем сдвинуть влево, но я думаю, что есть лучшее решение, чем это. Кроме того, если есть способ настроить порядок байтов, это тоже будет полезно.

1 Ответ

1 голос
/ 03 мая 2020

Используйте модуль struct, чтобы интерпретировать байтовые последовательности как типы данных C:

import struct
hex(struct.unpack("i", "AABB")[0])

, что дает '0x42424141'.

...