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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 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,667
По умолчанию

Цитата:
Сообщение от 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
Сообщений: 604
По умолчанию

good_luck7777, деление столбиком всего лишь нужно вспомнить. И делить получится поток данных - любое строковое число, на выходе получая строковый же результат
Алексей1153 вне форума Ответить с цитированием
Старый 25.08.2021, 19:45   #4
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

А где Вы возьмёте десятичное число?
taras-proger77 вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод в ШЕСНАДЦАТЕРИЧНУЮ систему good_luck7777 Win Api 7 25.08.2021 19:40
Перевод числа в двоичную систему 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

Реклама для незарегистрированных, регистрация на форуме