Найти - Пользователи
Полная версия: Преобразование шестнадцатеричного числа в строку.
Начало » Python для новичков » Преобразование шестнадцатеричного числа в строку.
1
Antimonter
Здравствуйте. Существуют способы решить эту проблему без написания новых функций?

P. S. Причина проблемы - необходимо записать шестнадцатеричное число в файл. В файл пишутся только строковые переменные.
dimy44
open(path, “w”).write(hex(value))
odnochlen
Antimonter
В файл пишутся только строковые переменные.
Так сделай их строковыми.
f.write(str(var))
#python 2
print >>f, var
bw
Не понятно что требуется. В Python не существует “шестнадцатиричных” чисел. Кроме строк (str, unicode), есть целочисленные (int, long) и вещественные (float), ну такая хрень в отдельных моделях как numbers, decimal и fractions.
Можно целое преобразовать в строку, так что бы оно выглядело как hex, bin, oct и т.д., но это будет строка, а не число. Можно число преобразовать в байт (или в несколько), см. про `chr` и `struct`.
А что именно вам требуется и что вы имеете ввиду под “шестнадциричными числами” я, увы, не догоняю.

..bw
dimy44
Все верно, но не углубляясь в детали, я так понимаю что человек хочет записать в файл скажем 0xff как ‘0xff’, а не ‘255’
>>> hex(0xff)
'0xff'
>>> str(0xff)
'255'
>>>
зачем и почему это уже другой вопрос.
FishHook
dimy44
Все верно, но не углубляясь в детали, я так понимаю что человек хочет записать в файл скажем 0xff как ‘0xff’, а не ‘255’

# -*- coding: utf-8 -*-
x=hex(0xff)
print str(x)
>>> 0xff
Или я чего то не понял?
dimy44
Это и так строка
>>> type(hex(0xff))
<type 'str'>
>>>
но, как я уже выше писал, не ‘255’ (str(0xff)), а ‘0xff’
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB