Вопрос

Мне нужно преобразовать строки unicode в Python в другие типы, такие как unsigned и signed int 8 бит,unsigned и signed int 16 бит,unsigned и signed int 32 бита,unsigned и signed int 64 бита, double, float, string, без знака и подписи 8 бит, без знака и подписи 16 бит, без знака и подписи 32 бита, без знака и подписи 64 бита.

Мне нужна помощь от ваших людей.

Это было полезно?

Решение

использование int() чтобы преобразовать строку в целое число.В Python нет разных целых чисел фиксированной ширины, поэтому вы получите только один тип данных.

Затем используйте struct чтобы упаковать целое число в фиксированную ширину:

res = struct.pack("=B",i) ## uint8_t
res = struct.pack("=b",i) ## int8_t

res = struct.pack("=H",i) ## uint16_t
res = struct.pack("=h",i) ## int16_t

res = struct.pack("=I",i) ## uint32_t
res = struct.pack("=i",i) ## int32_t

res = struct.pack("=Q",i) ## uint64_t
res = struct.pack("=q",i) ## int64_t

res = struct.pack("=f",i) ## float
res = struct.pack("=d",i) ## double

struct выдает байтовую строку, содержащую число в двоичном формате.

Редактировать:Из комментариев звучит так, как будто вы просто хотите преобразовать строку (из десятичных цифр) в целое число.Просто используй int() однако для этого вы не получите всю сложную семантику переполнения / недостаточного потока указанных типов.Вы не можете воспроизвести это на python, по крайней мере, без написания большого количества кода.

Я думаю, если вам нужна дополнительная помощь, вам придется более точно определить, чего вы хотите достичь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top