Уведомления

Группа в Telegram: @pythonsu

#1 Июль 23, 2008 14:57:15

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Конвертирование больших чисел в байтовоую строку

Понятно, спасибо.

Офлайн

#2 Июль 23, 2008 15:17:06

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Конвертирование больших чисел в байтовоую строку

array('c', hex(pub_key)) эта строчка делает массив хексовой строки а не её байтовое представление
так что не катит



Отредактировано (Июль 23, 2008 15:17:26)

Офлайн

#3 Июль 23, 2008 15:28:46

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

Конвертирование больших чисел в байтовоую строку

import struct
struct.pack(…)



Отредактировано (Июль 23, 2008 15:34:52)

Офлайн

#4 Июль 23, 2008 15:29:53

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Конвертирование больших чисел в байтовоую строку

Офлайн

#5 Июль 23, 2008 15:54:52

crchemist
От:
Зарегистрирован: 2008-07-09
Сообщения: 379
Репутация: +  0  -
Профиль   Отправить e-mail  

Конвертирование больших чисел в байтовоую строку

з ZODB.fsIndex

def num2str(n):
return struct.pack(">Q", n)[2:]



Офлайн

#6 Июль 23, 2008 16:18:31

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Конвертирование больших чисел в байтовоую строку

crchemist
struct не конвертирует очень большие числа

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

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

PS: чую нет способа :)



Отредактировано (Июль 23, 2008 16:24:20)

Офлайн

#7 Июль 23, 2008 19:07:54

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

Конвертирование больших чисел в байтовоую строку

лезть напрямую в память, потому что так там храниться число… оО.. это с каких пор это является питоновским подходом? с каких пор питон предоставляет возможность обращаться напрямую к памяти? хотя конечно можно написать экстеншн…. но я думаю тебе надо на С писать если текущее состояние дел в питоне не устраивает, потому как hex именно и делает то что тебе надо, а отображение строк в шестнадцатиричном виде - это не поведение по умолчанию… а если уже хочется заюзать питон — оверрайдим стандартное поведение long.__hex__

class h(long):
def __hex__(self):
return long.__hex__(self)[2:-1].decode('hex')



Офлайн

#8 Июль 23, 2008 19:43:23

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Конвертирование больших чисел в байтовоую строку

Всем иногда странного хочется…

Офлайн

#9 Июль 24, 2008 08:24:58

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Конвертирование больших чисел в байтовоую строку

cybergrind
в 3000ном питоне будите напрямую с памятью работать, так что всё равно к этому прийдём, куда бы не шли
да и не нужно мне именно напрямую (я же не пишу туда мне просто нужно прочитать число, чтение безопасно в любом языке), просто хочется избавится от 2х лишних оперция преобразования
С не всегда хорош во всех ситуациях, плюс если писать хороший алгоритм и не делать по 100 ненужных действий, питон не проигрует в производительности С, убеждался не однократно, плюс темп разработки на питоне на порядки выше чем на С
и последнее мне не нужно менять функционал работы хекса, он мне вообще не нужен, я как раз от преобразования в него избаится хачу :)
Ferroman
и не говори ;)



Офлайн

#10 Июль 24, 2008 12:47:59

cybergrind
От:
Зарегистрирован: 2008-01-21
Сообщения: 201
Репутация: +  0  -
Профиль   Отправить e-mail  

Конвертирование больших чисел в байтовоую строку

причем тут вообще питон? питон - не тот язык который предоставляет доступ напрямую к ресурсам компьютера, можно сказать это такая парадигма. а чтение - не такая уж безопасная операция как вам кажется… как нех можно ронять комп. а про работу с памятью в 3000 - это какой пеп вы так прочитали? + это вы два преобразования считаете офигенно сложным действием? лол, для того что бы делать то что вы хотите, в таком виде как хотите - понадобиться не один час страдания фигней, а потом когда сделаете, я даже незнаю стоит ли это называть адекватным решением задачи, т.к. наиболее адекватное, с точки зрения питона решение, и на питоне.
ПИТОН - НЕ ДЕЛАЛСЯ ДЛЯ ПРЯМОЙ РАБОТЫ С ПАМЯТЬЮ! ненравится - пишите на других языках, пишите экстеншны, да блин, подправьте интерпретатор - там работы на две минуты в любом решении.
и еще - от прямой работы с памятью мы уходим и уйдем (для большинства задач), а если у вас другое мнение - то наверное вы еще непоняли почему на питоне большой темп разработки и т.п.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version