Преобразование строки Unicode в Python

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

Мне нужна помощь от вас.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
4
0
8 352
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

используйте 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, по крайней мере, без написания большого количества кода.

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

@ Дуглас: Я восхищаюсь твоими экстрасенсорными способностями (или твоей удачей :). Я до сих пор не вижу прямой связи с вопросом - как указано - «использовать int () для преобразования строки в целое число»… Я бы предложил только модуль структуры.

tzot 18.12.2008 12:02

но тип res - строка. Так что я не могу с ним делать никаких операций. Я конвертирую здесь для выполнения таких арифметических операций. Это невозможно.

user46646 31.12.2008 09:05

Другие вопросы по теме