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

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


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

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


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

Всем привет!

Подскажите существует ли в WINAPI функция для перевода из десятичной в шестнадцатеричную систему счисления ?
good_luck7777 вне форума Ответить с цитированием
Старый 05.03.2020, 08:13   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 782
По умолчанию

Код:
WCHAR buf[16];
wsprintf(buf,L"%x",255);
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 05.03.2020, 08:32   #3
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 482
По умолчанию

sprintf_s

спецификатор формата "%X"
Алексей1153 вне форума Ответить с цитированием
Старый 09.03.2020, 19:48   #4
good_luck7777
 
Регистрация: 04.03.2020
Сообщений: 4
По умолчанию

Народ, подскажите еще как вызвать эту функцию в VB6 ?
good_luck7777 вне форума Ответить с цитированием
Старый 10.03.2020, 08:43   #5
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 482
По умолчанию

good_luck7777, там свои функции
https://docs.microsoft.com/ru-ru/off...p/hex-function
Алексей1153 вне форума Ответить с цитированием
Старый 10.03.2020, 15:58   #6
good_luck7777
 
Регистрация: 04.03.2020
Сообщений: 4
По умолчанию

Спасибо, функция Hex() работает,
у меня проблема с переводом больших чисел
например 04606203097180, т.е. 14 разрядов.

Число большое.. в VB6 нет такого типа

Я думал меня спасёт функция WINAPI

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

Цитата:
Сообщение от good_luck7777 Посмотреть сообщение
Подскажите как решить проблему ?
Хитрый алгоритм:
Код:
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 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод программы с 32 бит на 64 бит систему andreyxdd Общие вопросы Delphi 3 19.07.2017 11:04
Перевод из 3 в 16 систему счисления artem_alexeev Паскаль, Turbo Pascal, PascalABC.NET 2 19.02.2017 09:29
Перевод в 256-ти ричную систему MooNDeaR Помощь студентам 12 18.10.2013 22:56
перевод в двоичн. систему terminadoor Помощь студентам 3 22.12.2008 10:11
перевод из 4-ной в 3-ную систему счисления Mike07 Помощь студентам 1 07.10.2007 17:53


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