purebasic.info

PureBasic forum
Текущее время: Пт дек 15, 2017 9:21 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Hex2Dec
СообщениеДобавлено: Вс дек 03, 2017 9:14 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 545
Благодарил (а): 2 раз.
Поблагодарили: 30 раз.
Пункты репутации: 9
kvitaliy писал(а):
Volkoff писал(а):
Потому что нужно для частного случая в промышленных масштабах. Вот так все банально.

Мой мозг просто не может смоделировать ситуацию, когда это действительно нужно быстро. Ведь все в курсе, что компы считают не в десятичной системе и даже не в HEX, а в двоичной?
Кинь простой пример, где нужно в промышленном масштабе быстро, на ASMe преобразовать Hex2Dec, а то я от любопытства помру, заодно и Сергейчик сможет тебе с АСМом помочь, он в нём большой дока.

Сергейчик он да сможет помочь когда разберётся с задачей(ведь где описание её в теме?)
PS:А пока Сергейчик налил 50 г коньяка и читает форум(потому как пришёл с калыма и в воскресенье заработал бабло на которое будет неделю жить :) )
И так и навязывается каждый раз вопрос к тп.ст. с ником волкоф про командер(не вы ли его писали?)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Hex2Dec
СообщениеДобавлено: Вс дек 03, 2017 9:51 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 545
Благодарил (а): 2 раз.
Поблагодарили: 30 раз.
Пункты репутации: 9
Начинаю по тихому въезжать..
А хде в в первом посте замечание на не указание возвращаемого параметра?
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
Procedure Hex2Dec(ValAddr.l, BytesLen.l)
 
  ProcedureReturn Val("$"+PeekS(ValAddr, BytesLen))
 
EndProcedure
 
Val1.s = "007714A3"
Val2.s = "03"
 
Debug RSet(Hex(Hex2Dec(@Val1, 8),#PB_Long),8,"0")
Debug RSet(Hex(Hex2Dec(@Val2, 2),#PB_Byte),2,"0")
 
 
 



Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Hex2Dec
СообщениеДобавлено: Ср дек 06, 2017 3:28 am 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 545
Благодарил (а): 2 раз.
Поблагодарили: 30 раз.
Пункты репутации: 9
Может так сойдёт(правда парсит 2символа юникода в один байт) :D
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
Procedure.a hex1dec(*mem)
 
  !mov dword esi,[esp+4]
  !MOVZX dword eax,byte[esi]
  !sub dword eax,48
  !mov byte ah,[tabliza+eax]
  ;
  !MOVZX dword ebx,byte[esi+2]
  !sub dword ebx,48
  !mov byte al,[tabliza+ebx]
  !shl byte al,4
  !shr word ax,4
  ;
  !retn 4
EndProcedure
 
Debug Hex(hex1dec(@"45"))
Debug Hex(hex1dec(@"AF"))
Debug hex1dec(@"FF")
DataSection
 !tabliza:                        
  !db 0,1,2,3,4,5,6,7,8,9,0,0,0,0,0,0
  !db 0,10,11,12,13,14,15,0,0,0,0,0,0
  !db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  !db 10,11,12,13,14,15
EndDataSection
 
 



Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB