преобразование строки юникода в python
Вопрос
Мне нужно преобразовать строки 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, по крайней мере, без написания большого количества кода.
Я думаю, если вам нужна дополнительная помощь, вам придется более точно определить, чего вы хотите достичь.