Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Универсальный скрипт HEX2DEC
SowerДата: Вторник, 29 Сентября 2009, 16:59 | Сообщение # 1
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Вот мой скрипт,который позволяет сконвертировать любое шестнадцатеричное число в десятеричное.

Code

hex$=LOW(hex$)
len=LEN(hex$)
l=len-1
For i=1 To len
    c$=StrCopy(hex$,i,1)
    v=VAL(c$)
    If (c$='a') Then
      v=10
    End
    If (c$='b') Then
      v=11
    End
    If (c$='c') Then
      v=12
    End
    If (c$='d') Then
      v=13
    End
    If (c$='e') Then
      v=14
    End
    If (c$='f') Then
      v=15
    End
    ch=ch+v*(16^l)
    l=l-1
Next i
ch=0

В hex$ шестнадцатеричное число, на выходе получаем десятеричное число в переменной ch
Скрипт работает быстро и надежно ;)
Кстати он был использован в проекте Информация о процессоре из реестра (Кстати проект почемуто небыл размещен redface )


Сообщение отредактировал Grand - Вторник, 29 Сентября 2009, 17:03
 
toizyДата: Вторник, 29 Сентября 2009, 22:02 | Сообщение # 2
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Код не оптимален.

1. Слишком много If..End
2. Наличие цикла
3. Фатальная логическая ошибка. Что скрипт будет делать, если ему передадут значение $45EDFF?

Пример перевода в Hex и обратно имеется в исходниках Rush


Жизнь оказалась не такой уж и забавной, как поначалу...
 
YURIYДата: Среда, 30 Сентября 2009, 00:01 | Сообщение # 3
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Пожалуй, поставлю возможность писать в раздел "ГОТОВЫЕ ОТВЕТЫ ПО MMB" только нам с Димой...

Grand, просьба не топориться в следующий раз. Если решение, найденное тобой, классное - мы его обязательно разместим там, где необходимо :)



Вечная память Андрею Сергееву!
 
SowerДата: Четверг, 26 Ноября 2009, 08:04 | Сообщение # 4
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (toizy)
Фатальная логическая ошибка. Что скрипт будет делать, если ему передадут значение $45EDFF?

А что такое? Выдасть нормальное десятичное значение %)
 
  • Страница 1 из 1
  • 1
Поиск: