Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Dec2Hex / 1 сообщений из 1, страница 1 из 1
29.02.2008, 20:01
    #35164399
Dec2Hex
возникла у людей задача преобразовать длинное (более 32 разрядов) целое десятичное число, заданное в виде строки, в шестнадцатеричный вид

поиском не нашел нифига, пришлось самому накорябать
может у кого идеи получше есть?

Код: plaintext
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
Public Function Dec2Hex(sDec$) As String
Const lBase& =  16 
Const lBlock& =  8 

ReDim alDec(Len(sDec) \ lBlock - IIf(Len(sDec) Mod lBlock =  0 ,  1 ,  0 )) As Long
Dim i&, l&, j&

    j =  0 : i =  1 
    l = Len(sDec) Mod lBlock
    If l =  0  Then l = lBlock
    
    Do
    
        alDec(j) = CLng(Mid$(sDec, i, l))
        i = i + l
        j = j +  1 
    
        l = lBlock
    
    Loop While i <= Len(sDec)

    j =  0 
    Do
        l =  0 
        For i = j To UBound(alDec)
            
            If l >  0  Then alDec(i) = alDec(i) + l * ( 10  ^ lBlock)
            l = alDec(i) Mod lBase
            alDec(i) = alDec(i) \ lBase
            
        Next
        Dec2Hex = IIf(l <  10 , CStr(l), Chr$(Asc("A") + l -  10 )) & Dec2Hex
    
        For i = j To UBound(alDec)
            If alDec(i) <>  0  Then Exit For
        Next
        j = i
    
    Loop Until j > UBound(alDec)

End Function

...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Dec2Hex / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]