Показать полную графическую версию : [решено] Работа с бинарным значением, как с строкой.
Есть бинарное значение (к примеру 0x0A0000). Как заставить AutoIt не преобразовывать его автоматом в обычное число? Мне нужно работать с этим, как с обычной строкой.
Func GetLength($Data)
Local $Return = StringMid($Data, 7, 1)
$Return = 16 * $Return + StringMid($Data, 8, 1)
$Return = 16 * $Return + StringMid($Data, 5, 1)
$Return = 16 * $Return + StringMid($Data, 6, 1)
$Return = 16 * $Return + StringMid($Data, 3, 1)
$Return = 16 * $Return + StringMid($Data, 4, 1)
Return $Return
EndFunc
Эта функция возвращает 24659, хотя мне нужно 10
Мне нужно работать с этим, как с обычной строкой.
$nVar = 0x0A0000
GetLength($nVar)
Func GetLength($Data)
$Data = '0x' & Hex($Data, 6)
ConsoleWrite("IsString($Data): " & (IsString($Data) = 1) & @CRLF)
Local $Return = StringMid($Data, 7, 1)
$Return = 16 * $Return + StringMid($Data, 8, 1)
$Return = 16 * $Return + StringMid($Data, 5, 1)
$Return = 16 * $Return + StringMid($Data, 6, 1)
$Return = 16 * $Return + StringMid($Data, 3, 1)
$Return = 16 * $Return + StringMid($Data, 4, 1)
ConsoleWrite("$Return = " & $Return & @CRLF)
Return $Return
EndFunc
Я только не пойму как из этого должно получиться 10 :dont-know .
Упс... Там где StringMid должно ещё и Dec стоять :)
Спасибо))
А для чего предназначено конвертирование подобного рода?
Это перевод из 16-ричной системы счисления в 10 с использованием минимального числа сложений и умножений. При этом возведение в степень не используется. Просто у меня порядок цифр в числе другой. Сначала идёт младшие два разряда. Потом средние два. Потом старшие два.
Могу написать поподробнее про сам перевод. Только что-то я тут не вижу тега, чтобы писать индексы. Оффтоп, в принципе, подходит, но должно ведь быть что-то другое.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.