Посл.ответ |
Сообщение |
 Ранг: 312.0 (мудрец), 349thx Активность: 0.46↗0.65 Статус: Участник Advisor
|
Создано: 02 августа 2007 20:56 · Личное сообщение · #1
Имею в edit:='24856283725065382647';
Как свести в 16-ную систему исчисления?
Число из 19-ти значащих цифр,получается правильно.Проверял в калькуляторе.
Больше чем 19,чё то не получается.
----- Чтобы юзер в нэте не делал,его всё равно жалко.. | Сообщение посчитали полезным: |
|
Ранг: 221.3 (наставник), 135thx Активность: 0.19↘0.07 Статус: Участник
|
Создано: 02 августа 2007 21:03 · Личное сообщение · #2
Bronco
Тебе функцию перевода из DEC в HEX тчоле надо?
----- xchg dword [eax], eax | Сообщение посчитали полезным: |
Ранг: 161.0 (ветеран) Активность: 0.12↘0 Статус: Участник
|
Создано: 02 августа 2007 21:07 · Поправил: kaiZer · Личное сообщение · #3
var
texteg,hexeg:string;
i,ordeg: Integer;
begin
texteg:=Edit1.Text;
for i:=1 to len do
begin
ordeg:=Ord(texteg[i]);
hexeg:=hexeg+inttohex(ordeg);
end;
//вот так вот правильнее
| Сообщение посчитали полезным: |
 Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 02 августа 2007 21:10 · Личное сообщение · #4
А если старинным ручным способом - делением числа на основание системы счисления?
| Сообщение посчитали полезным: |
 Ранг: 328.7 (мудрец), 73thx Активность: 0.17↘0.01 Статус: Участник
|
Создано: 02 августа 2007 21:24 · Личное сообщение · #5
58F3 425A 8CD8 6AF7
калькулятор выдал
| Сообщение посчитали полезным: |
 Ранг: 312.0 (мудрец), 349thx Активность: 0.46↗0.65 Статус: Участник Advisor
|
Создано: 02 августа 2007 21:34 · Личное сообщение · #6 |
 Ранг: 387.4 (мудрец) Активность: 0.17↘0 Статус: Участник системщик
|
Создано: 02 августа 2007 21:53 · Поправил: s0larian · Личное сообщение · #7
01 58f3425a 8cd86af7
тут больше чем 64 бита  Тебе надо написать (или лучше выдернуть откуда-нить) кусок кода для операций с большими числами. Такие числа хранятся в памяти в родном 16-ричном формате и переводится в 10-тичную делением.
| Сообщение посчитали полезным: |
 Ранг: 1288.1 (!!!!), 273thx Активность: 1.29↘0 Статус: Участник
|
Создано: 02 августа 2007 21:54 · Личное сообщение · #8
может, просто заюзать либу для работы с большими числами?
| Сообщение посчитали полезным: |
 Ранг: 312.0 (мудрец), 349thx Активность: 0.46↗0.65 Статус: Участник Advisor
|
Создано: 02 августа 2007 22:13 · Личное сообщение · #9
Да я бы выдрал.Откуда?
Типа того что я юзаю:
procedure TfrmSuka.Button3Click(Sender: TObject);
var
i:int64;
begin
i:=StrToInt64Def(edit3.Text,0);
If i=0 then
edit3.Text:='Число имеет больше 19 значащих цифр';
if i>0 then
edit3.Text:=Dec2X(i,16);
Button3.Enabled:=false;
end;
-----------
В атаче либа(откоментированная не мной),19 сводит чётко,надо доводить до ума.Ума нет,уже припарился
----- Чтобы юзер в нэте не делал,его всё равно жалко.. | Сообщение посчитали полезным: |
 Ранг: 312.0 (мудрец), 349thx Активность: 0.46↗0.65 Статус: Участник Advisor
|
Создано: 02 августа 2007 22:22 · Поправил: Bronco · Личное сообщение · #10
kaiZer пишет:
for i:=1 to len do
len - это length?
И Я так понимаю что texteg
Поправил,но у меня и тут тормоза:
hexeg:=hexeg+ inttohex(ordeg);
Лады,поправил типа так:
hexeg:=hexeg+inttohex (ordeg,8);
Компильнулось.
В эдите имею десятичное счисление.
Забыл приатачить
Там просто функа рипнутая.
----- Чтобы юзер в нэте не делал,его всё равно жалко.. | Сообщение посчитали полезным: |
 Ранг: 312.0 (мудрец), 349thx Активность: 0.46↗0.65 Статус: Участник Advisor
|
Создано: 02 августа 2007 22:32 · Личное сообщение · #11 |
Ранг: 161.0 (ветеран) Активность: 0.12↘0 Статус: Участник
|
Создано: 02 августа 2007 23:03 · Личное сообщение · #12
Bronco
У меня все нормально конвертится... Все хорошо пашет и не томозит
а len - это length
| Сообщение посчитали полезным: |
Ранг: 309.8 (мудрец), 21thx Активность: 0.17↘0 Статус: Участник
|
Создано: 02 августа 2007 23:03 · Личное сообщение · #13
fgint в руки
----- Shalom ebanats! | Сообщение посчитали полезным: |
 Ранг: 312.0 (мудрец), 349thx Активность: 0.46↗0.65 Статус: Участник Advisor
|
Создано: 03 августа 2007 00:13 · Личное сообщение · #14
kaiZer
Да я верю
У меня D7,если не выправлю len,и inttohex,даже не компилиться.
Скинь плиз,в аттаче *.pas от сорца твоего.
----- Чтобы юзер в нэте не делал,его всё равно жалко.. | Сообщение посчитали полезным: |
Ранг: 51.0 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 03 августа 2007 06:13 · Поправил: sotona · Личное сообщение · #15
вот, только что написал
http://the-matrex.nm.ru/dec_to_hex.zip http://the-matrex.nm.ru/dec_to_hex.zip
комментарии к исходнику:
1) если возможно, лучше обойтись работой с целыми числами типа Int64 (long long)
2) сам алго поддерживает десятичные строки любой длины.
3) алгоритм может быть в разы ускорен, и я знаю в каком направлении работать. кто разберется в коде, поймет. в принципе, смотря для какой задачи использовать. если больших скоростей не надо, то самое то.
4) на C это можно было бы выразить более красиво
| Сообщение посчитали полезным: |
 Ранг: 312.0 (мудрец), 349thx Активность: 0.46↗0.65 Статус: Участник Advisor
|
Создано: 03 августа 2007 10:26 · Личное сообщение · #16
sotona
Золотые руки...Низкий поклон.
----- Чтобы юзер в нэте не делал,его всё равно жалко.. | Сообщение посчитали полезным: |
 Ранг: 312.0 (мудрец), 349thx Активность: 0.46↗0.65 Статус: Участник Advisor
|
Создано: 04 августа 2007 03:54 · Личное сообщение · #17 |
Ранг: 61.7 (постоянный), 12thx Активность: 0.09↘0.02 Статус: Участник
|
Создано: 04 августа 2007 15:08 · Личное сообщение · #18
Я думаю, легко написать конвертер самому- время столько же убьешь
ЗЫ. чето я ваще бухой
| Сообщение посчитали полезным: |
Ранг: 158.7 (ветеран) Активность: 0.11↘0 Статус: Участник
|
Создано: 04 августа 2007 18:40 · Личное сообщение · #19
Gerpes пишет:
конвертер самому- время столько же убьешь
ЗЫ. чето я ваще бухой
Так лучше бы промолчать об этом.
А если ты напишешь необходимые функи быстрее чем я юнит подключу к проекту - большой тогда тебе респект и уважуха.
----- Я ещё не волшебник, я только учусь... | Сообщение посчитали полезным: |
Ранг: 113.4 (ветеран) Активность: 0.13↘0 Статус: Участник Ветеран
|
Создано: 04 августа 2007 19:43 · Личное сообщение · #20
Ara пишет:
А если старинным ручным способом - делением числа на основание системы счисления?
Во-во, так и надо. А то совсем народ обленился...Всё им в готовом виде надо.
----- моя подпись! | Сообщение посчитали полезным: |
Ранг: 51.0 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 05 августа 2007 09:12 · Личное сообщение · #21
locker_fx пишет:
Во-во, так и надо. А то совсем народ обленился...Всё им в готовом виде надо.
помоему ты не проникнулся сутью проблемы. о хранении больших чисел.
а так - да, надо собирать остатки от деления на основание. только само деление еще реализовать надо ))
| Сообщение посчитали полезным: |
Ранг: 51.0 (постоянный) Активность: 0.03↘0 Статус: Участник
|
Создано: 05 августа 2007 09:35 · Личное сообщение · #22
18446744073709551615 - последнее 20-значное число, которое можно в Int64 запихать.
| Сообщение посчитали полезным: |
 Ранг: 312.0 (мудрец), 349thx Активность: 0.46↗0.65 Статус: Участник Advisor
|
Создано: 05 августа 2007 10:10 · Личное сообщение · #23
sotona
Да и на выходе предел точности тоже есть.
Вот если хочешь посмотри,нарыл в сети для большизх чисел модули 594f_05.08.2007_CRACKLAB.rU.tgz - vln.zip
----- Чтобы юзер в нэте не делал,его всё равно жалко.. | Сообщение посчитали полезным: |