1

Тема: AHK: Получение шестнадцатеричного числа из текста и наоборот.

Что бы получить число из текста у меня получилось

+ открыть спойлер
SetFormat, IntegerFast, hex
GetHexInStr(String)
{
    hex := {1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15}
    loop,parse,String
        e+= (hex[A_LoopField]<<((StrLen(String)-A_Index)*4))
    return e
}

msgbox % GetHexInStr("50F") + 0

А вот что бы наоборот, возникли трудности

+ открыть спойлер
SetFormat, IntegerFast, hex
GetStrInInt(Integer)
{
    hex := {0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,10:"A",11:"B",12:"C",13:"D",14:"E",15:"F"}
    loop
        msgbox % hex[(Integer>>(A_Index-1)*4)&0xF]
}


msgbox % GetStrInInt(0x50F)

Проблема в том то что я не знаю как определить размер этого числа для остоновки цикла.

2

Re: AHK: Получение шестнадцатеричного числа из текста и наоборот.

Непонятно. Напишите примеры, было - стало.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Получение шестнадцатеричного числа из текста и наоборот.

В первой функции текст F05 конвертируется в 0xF05 с которой работают математические действия.( место F05 может быть любое hex число).

А во второй функции должно из 0xF05 быть ответом F05 в виде текста.
В этой функции просто перебираются байты от младшего значения и преобразуются в текст. После того как loop прошел все байты (5-0-F)  он должен остановится, вот как только отловить старшее значение?

4

Re: AHK: Получение шестнадцатеричного числа из текста и наоборот.

А почему просто не прилепить или отрезать "0x"?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5 (изменено: yalanne, 2015-09-12 21:12:11)

Re: AHK: Получение шестнадцатеричного числа из текста и наоборот.

msgbox % LTrim(0x50F,"0x")

Не знал что все так просто. Спасибо.

А может и для первой функции есть более легкий аналог?

6 (изменено: serzh82saratov, 2015-09-12 21:13:55)

Re: AHK: Получение шестнадцатеричного числа из текста и наоборот.

Или так:

text = ff
MsgBox % Format("{:#x}", "0x" text) + 0

hex = 0xff
MsgBox % Format("{:x}", hex)
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: Получение шестнадцатеричного числа из текста и наоборот.

Спасибо большое.