Найти - Пользователи
Полная версия: Конвертирование больших чисел в байтовоую строку
Начало » Python для экспертов » Конвертирование больших чисел в байтовоую строку
1 2 3 4 5 6
Ferroman
Понятно, спасибо.
evgenyl
array('c', hex(pub_key)) эта строчка делает массив хексовой строки а не её байтовое представление
так что не катит
crchemist
import struct
struct.pack(…)
crchemist
з ZODB.fsIndex
def num2str(n):
return struct.pack(">Q", n)[2:]
evgenyl
crchemist
struct не конвертирует очень большие числа

ZAN
делать строку из хекса можно с помощью hex_срока.decode('hex'), нечего писать велосипеды
мне необходимо из числа сделать его байтовое представление
мой текущий способ это преобразовать его в hex потом hex в строку
но это не самый лучший способ

crchemist
Q - кодирует 64 битный long
у меня 1024 битный
при попытке кодировани говорит
OverflowError: long too big to convert

PS: чую нет способа :)
cybergrind
лезть напрямую в память, потому что так там храниться число… оО.. это с каких пор это является питоновским подходом? с каких пор питон предоставляет возможность обращаться напрямую к памяти? хотя конечно можно написать экстеншн…. но я думаю тебе надо на С писать если текущее состояние дел в питоне не устраивает, потому как hex именно и делает то что тебе надо, а отображение строк в шестнадцатиричном виде - это не поведение по умолчанию… а если уже хочется заюзать питон — оверрайдим стандартное поведение long.__hex__
class h(long):
def __hex__(self):
return long.__hex__(self)[2:-1].decode('hex')
Ferroman
Всем иногда странного хочется…
evgenyl
cybergrind
в 3000ном питоне будите напрямую с памятью работать, так что всё равно к этому прийдём, куда бы не шли
да и не нужно мне именно напрямую (я же не пишу туда мне просто нужно прочитать число, чтение безопасно в любом языке), просто хочется избавится от 2х лишних оперция преобразования
С не всегда хорош во всех ситуациях, плюс если писать хороший алгоритм и не делать по 100 ненужных действий, питон не проигрует в производительности С, убеждался не однократно, плюс темп разработки на питоне на порядки выше чем на С
и последнее мне не нужно менять функционал работы хекса, он мне вообще не нужен, я как раз от преобразования в него избаится хачу :)
Ferroman
и не говори ;)
cybergrind
причем тут вообще питон? питон - не тот язык который предоставляет доступ напрямую к ресурсам компьютера, можно сказать это такая парадигма. а чтение - не такая уж безопасная операция как вам кажется… как нех можно ронять комп. а про работу с памятью в 3000 - это какой пеп вы так прочитали? + это вы два преобразования считаете офигенно сложным действием? лол, для того что бы делать то что вы хотите, в таком виде как хотите - понадобиться не один час страдания фигней, а потом когда сделаете, я даже незнаю стоит ли это называть адекватным решением задачи, т.к. наиболее адекватное, с точки зрения питона решение, и на питоне.
ПИТОН - НЕ ДЕЛАЛСЯ ДЛЯ ПРЯМОЙ РАБОТЫ С ПАМЯТЬЮ! ненравится - пишите на других языках, пишите экстеншны, да блин, подправьте интерпретатор - там работы на две минуты в любом решении.
и еще - от прямой работы с памятью мы уходим и уйдем (для большинства задач), а если у вас другое мнение - то наверное вы еще непоняли почему на питоне большой темп разработки и т.п.
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