Преобразование Hex в числовые значения

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Don Leno
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 421
Зарегистрирован: 13.10.2013 (Вс) 14:05

Преобразование Hex в числовые значения

Сообщение Don Leno » 01.11.2016 (Вт) 21:11

Мне неободимо hex значение конвертировать в числа.
К примеру:
байт 255 = FF (в hex)
В алфавите Hex всего 16 символов (0-9, A-F). Вопрос как получить числовое значения каждого символа хекс кода?
Что то вроде:
байт 255 = 15(F) и 15(F)
Последний раз редактировалось Don Leno 01.11.2016 (Вт) 21:32, всего редактировалось 1 раз.

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Преобразование Hex в числовые значения

Сообщение ger_kar » 01.11.2016 (Вт) 21:20

Ничего не понял из того, что во что конвертировать.
Если dec -> hex то функции Hex() и Hex$()
Если hex -> dec то можно например так Val("&H" & str), где str - это строка символов в шестнадцатеричном формате
Бороться и искать, найти и перепрятать

Don Leno
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 421
Зарегистрирован: 13.10.2013 (Вс) 14:05

Re: Преобразование Hex в числовые значения

Сообщение Don Leno » 01.11.2016 (Вт) 21:21

Нет, мне значение Hex "FF" необходимо забить в две переменые a=15 b=15
К примеру
FF = 15 и 15
0F= 0 и 15
4A = 4 и 10

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Преобразование Hex в числовые значения

Сообщение ger_kar » 01.11.2016 (Вт) 21:32

Тогда тоже все элементарно.
Сначала получаем младшую часть (правую) просто прикрывая маской = &HFF And &hF
Потом старшую(левую) часть сдвигая старшую часть вправо на 4 бита = &HFF \ 16
Бороться и искать, найти и перепрятать

Don Leno
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 421
Зарегистрирован: 13.10.2013 (Вс) 14:05

Re: Преобразование Hex в числовые значения

Сообщение Don Leno » 01.11.2016 (Вт) 21:35

Можно пример кодом? Как я понимаю это то, что pronto ранее писал про работу с битами в этой теме http://bbs.vbstreets.ru/viewtopic.php?f=1&t=52153

Sam777e
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 157
Зарегистрирован: 16.09.2010 (Чт) 4:33

Re: Преобразование Hex в числовые значения

Сообщение Sam777e » 01.11.2016 (Вт) 21:47

Код: Выделить всё
Dim S As String, j As Long

S = "FDA"
For j = 1 To Len(S)
  Debug.Print Clng("&H" & Mid(S, j, 1))
Next j
Здоровья и удачи

ger_kar
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1957
Зарегистрирован: 19.05.2011 (Чт) 19:23
Откуда: Кыргызстан, Иссык-Куль, г. Каракол

Re: Преобразование Hex в числовые значения

Сообщение ger_kar » 01.11.2016 (Вт) 21:47

Так я и дал пример кодом.
Есть у меня строка например Dim s As string : s = "FF"
И мне надо превратить эту строку в две переменных разделив побитно на младшую и старшую часть.
Код: Выделить всё
Dim hexValue As Byte: HexValue = Val("&H" & s) 'Сначала получаю значение из строки
Dim B As Byte: B = HexValue And &H ' Младшая часть (AB)
Dim A As Byte: A = HexValue \ 16 'Старшая часть


Можно и наоборот сначала старшую часть, потом младшую. Разницы нет
Обратное преобразование: HexValue = A * 16 + B
Бороться и искать, найти и перепрятать

Teranas
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 13.12.2008 (Сб) 4:26
Откуда: Новосибирск

Re: Преобразование Hex в числовые значения

Сообщение Teranas » 02.11.2016 (Ср) 2:18

Код: Выделить всё
Dim sHex as string, i as integer, b() as byte

redim b(Len(sHex) - 1)

for i = 1 to Len(sHex)
  b(i-1) = val("&H" + Mid$(sHex, i, 1))
next i
' На выходе массив из b() чисел, b(0) - старшие, b(Len(sHex) - 1) – младшие
С уважением, Андрей.

Don Leno
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 421
Зарегистрирован: 13.10.2013 (Вс) 14:05

Re: Преобразование Hex в числовые значения

Сообщение Don Leno » 02.11.2016 (Ср) 16:10

Спасибо вам за помощь)))))))))


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

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

    TopList