В Python 2.7, как я мог преобразовать десятичную точку с плавающей запятой (из десятичного модуля) в двоичное представление (серия байтов, которую я могу записать в двоичный файл и прочитать)? Меня интересует наименьшее возможное двоичное представление. Заранее спасибо!Преобразование Python Десятичное число в байты (двоичное представление)?
ответ
my_float = Decimal("1.23")
with open("some_file.bin","w") as f:
f.write("%s"%my_float.to_eng_string()) #string is a series of bytes
print Decimal(open("some_file.bin").read()) #decoded bytes back to Decimal
это, по существу, как внутреннее представление десятичного
Структура будет кортежем из трех элементов: знак, номер и экспонентов. Знак 1 или 0, число является кортежем десятичных цифр, а показатель - подписанный int или длинный
Десятичный ((1, (3, 2, 2, 5), -2)) # для - 32.25
Вам не нужно читать из файла? Но я не думаю, что это то, что ищет OP. – mgilson
Я согласен ... но я не уверен, что OP знает, что они ищут ... и это технически отвечает на вопрос defintion ... –
слегка осветлены ... –
Возможно, что-то вроде этого? Лично я бы записывал данные в ASCII, хотя - писать в двоичных файлах обычно не стоит.
#!/usr/local/cpython-2.7/bin/python
import pickle as pickle_mod
import decimal as decimal_mod
decimal = decimal_mod.Decimal(str(1.0/9.0))
pickled = pickle_mod.dumps(decimal)
#print repr(pickled)
with open('decimal.bin', 'wb') as file_:
file_.write(pickled)
with open('decimal.bin', 'rb') as file_:
data = file_.read()
decimal2 = pickle_mod.loads(data)
print decimal2
и thats больше байтов, чем мое решение ... но да +1, поскольку это делает то, что ОП спрашивает (по крайней мере, как Я понимаю, чего они хотят) –
- 1. Преобразование фиксированной точки Десятичное число в двоичное
- 2. Десятичное преобразование в двоичное преобразование в C#
- 3. Десятичное/шестнадцатеричное/двоичное преобразование
- 4. Десятичное двоичное преобразование
- 5. десятичное двоичное преобразование java
- 6. преобразовать отрицательное десятичное число в двоичное число
- 7. Преобразование строки в двоичное представление в python
- 8. преобразование строки в двоичное число в python
- 9. Python: Преобразование строки в десятичное число
- 10. конвертировать 32 бит, двоичное число в десятичное в python
- 11. Преобразовать неконвертируемое двоичное число в десятичное
- 12. BCD (двоичное кодированное десятичное число) в C
- 13. Выводит неправильное число десятичное в двоичное?
- 14. преобразовать целое число python в его двоичное представление, подписанное
- 15. pgsql числовое/десятичное двоичное представление & Cocoa
- 16. Преобразование mpz_t в двоичное представление
- 17. Преобразование строк в Javascript (десятичное в двоичное)
- 18. Число целых чисел двоичное представление
- 19. Преобразование хэш-кода в его двоичное представление
- 20. Преобразование NSString в десятичное число
- 21. Преобразование шестнадцатеричного в десятичное число
- 22. Как преобразовать двоичное число с плавающей запятой в десятичное число
- 23. Как преобразовать двоичное число в десятичное число под знаком
- 24. Как преобразовать двоичное число (32 бит) в десятичное число?
- 25. преобразование десятичного числа в двоичное число
- 26. Преобразование Текстовое представление шестнадцатеричных в шестнадцатеричные байты
- 27. Преобразование временной строки в десятичное число часов?
- 28. Что означает «число >> 1» в «двоичном (число >> 1)» (десятичное преобразование в двоичное)
- 29. Python запросить десятичное число
- 30. Как преобразовать очень длинное двоичное число в десятичное?
Что делать, если нет идеального двоичного представления? –
Это звучит как много работы. Вместо этого я рекомендую использовать «pickle». – Kevin
Возможно, что-то в структурном модуле очевидно: (возможно, связанное: http://stackoverflow.com/questions/444591/convert-a-string-of-bytes-into-an-int-python) @JoranBeasley Wow they have теперь появилась память, в которой хранятся битовые последовательности, которые файлы не могут? –