Преобразование типа в Python

21
задан ian5v 1 May 2016 в 08:02
поделиться

4 ответа

Можно преобразовать строку в 32-разрядное целое число со знаком с эти int функция:

str = "1234"
i = int(str)  // i is a 32-bit integer

, Если строка не представляет целое число, Вы доберетесь ValueError исключение. Обратите внимание, однако, что, если строка действительно представляет целое число, но что целое число не вписывается в 32-разрядный интервал со знаком, тогда Вы на самом деле получите объект типа long вместо этого.

можно тогда преобразовать его в другие ширины и signednesses с некоторой простой математикой:

s8 = (i + 2**7) % 2**8 - 2**7      // convert to signed 8-bit
u8 = i % 2**8                      // convert to unsigned 8-bit
s16 = (i + 2**15) % 2**16 - 2**15  // convert to signed 16-bit
u16 = i % 2**16                    // convert to unsigned 16-bit
s32 = (i + 2**31) % 2**32 - 2**31  // convert to signed 32-bit
u32 = i % 2**32                    // convert to unsigned 32-bit
s64 = (i + 2**63) % 2**64 - 2**63  // convert to signed 64-bit
u64 = i % 2**64                    // convert to unsigned 64-bit

можно преобразовать строки в плавающую точку с эти float функция:

f = float("3.14159")

плавания Python - то, что другие языки называют double, т.е. они - 64 бита. В Python нет никаких 32-разрядных плаваний.

40
ответ дан 29 November 2019 в 20:21
поделиться

Следующие типы - по большей части - не существуют в Python во-первых. В Python строки преобразовываются в ints, longs или плавания, потому что это - все, существует.

Вы просите преобразования, которые не относятся к Python во-первых. Вот список типов, которые Вы попросили и их эквивалентный Python.

  • неподписанный и подписанный интервал 8 битов, интервал
  • неподписанный и подписанный интервал 16 битов, интервал
  • неподписанный и подписанный интервал 32 бита, неподписанные: длинный , подписанный интервал
  • неподписанный и подписал интервал 64 бита, длинный

  • двойной, плавание

  • плавание, плавание
  • строка, это - то, что необходимо было начать с [1 127]

, я не знаю, какой следующее, таким образом, я не знаю эквивалентный Python.

  • неподписанные и подписанные 8 битов,
  • неподписанные и подписанные 16 битов,
  • неподписанные и подписанные 32 бита,
  • неподписанные и подписанные 64 бита.

у Вас уже есть все преобразования, которые имеют значение: int(), long() и float().

3
ответ дан 29 November 2019 в 20:21
поделиться

Python только имеет сингл int тип. Для преобразования строки в int используйте int() как это:

>>> str = '123'
>>> num = int(str)
>>> num
123

Редактирование: Также для преобразования в плавание используйте float() тем же самым способом.

2
ответ дан 29 November 2019 в 20:21
поделиться

Я не думаю, что этому можно обязательно ответить хорошо без большей информации. Как другие сказали, существует только интервал и жаждет целых чисел в Python - язык не придерживается разрядной ширины и архетипов со знаком языков программирования низшего уровня.

, Если Вы действуете полностью в рамках Python, тогда Вы, вероятно, задаете неправильный вопрос. Там вероятно лучший способ сделать то, в чем Вы нуждаетесь.

, Если Вы взаимодействуете с, например, C код, или по сети, тогда там , способы сделать это, и похоже, что ответ на Вашу предыдущую регистрацию касался той авеню довольно ловко.

0
ответ дан 29 November 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: