Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы Поиск в этой теме
Старый 10.03.2020, 16:34   #1
good_luck7777
 
Регистрация: 04.03.2020
Сообщений: 4
По умолчанию VB6: перевод 14 разрядного числа в ШЕСНАДЦАТЕРИЧНУЮ систему

Всем привет!
Подскажите как перевести из десятичной системы в hex большого числа ?

например 04606203097180, т.е. 14 разрядов.

Число большое.. в VB6 нет такого типа
Я думал меня спасёт функция WINAPI

Подскажите как решить проблему ?
good_luck7777 вне форума Ответить с цитированием
Старый 10.03.2020, 21:32   #2
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,478
По умолчанию

Цитата:
Сообщение от good_luck7777 Посмотреть сообщение
Число большое.. в VB6 нет такого типа
Тип есть, даже больше, Currency
Но он не поможет, сама HEX с такими большими числами не работает.
Тут нужен хитрый алгоритм, он есть у меня:
Код:
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Private Function Dec2Hex(ByVal strDec As Variant) As String

Dim mybyte(0 To 19) As Byte
Dim lp As Long

CopyMemory mybyte(0), ByVal VarPtr(CDec(strDec)), 16

For lp = 7 To 4 Step -1
    mybyte(12 + lp) = mybyte(lp)
Next

For lp = 19 To 8 Step -1
    If (Not Len(Dec2Hex) And mybyte(lp) <> 0) Or Len(Dec2Hex) Then
        'Dec2Hex = Dec2Hex & Format(hex(mybyte(lp)), IIf(Len(Dec2Hex), "00", "0"))
        Dec2Hex = Dec2Hex & IIf(Len(Dec2Hex), Right$("0" & Hex(mybyte(lp)), 2), Hex(mybyte(lp)))
    End If
Next

End Function

Private Sub Command1_Click()
MsgBox Dec2Hex(22341234554321#)
End Sub
kvitaliy вне форума Ответить с цитированием
Старый 11.03.2020, 17:38   #3
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 478
По умолчанию

good_luck7777, деление столбиком всего лишь нужно вспомнить. И делить получится поток данных - любое строковое число, на выходе получая строковый же результат
Алексей1153 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод в ШЕСНАДЦАТЕРИЧНУЮ систему good_luck7777 Win Api 6 10.03.2020 21:34
Перевод числа в двоичную систему krasy Помощь студентам 2 27.11.2016 10:02
Перевод числа в двоичную систему lord2012 Помощь студентам 2 15.05.2012 05:57
Перевод числа в др систему счисления! diallfam Помощь студентам 1 01.05.2012 11:09
Перевод вещественного числа из 10 в 2 Систему счисления. [С++] Veselyn Помощь студентам 9 17.01.2010 00:39


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS