Что нового

[Арифметика] Сложение двух HEX чисел

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Всем доброго времени суток :3
Немного даже стыдно задавать следующий вопрос, но он меня ввел в безвыходное положение.
Необходимо выполнить операцию:
Код:
0x00400000 + 0x1234ABCD

И получить:
Код:
0x1274ABCD

Заветный + выдает не тот результат, BitOr/BitAnd вообще ни о чем.
Вся надежда на вас :C
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
firex,
Попробуйте так.
Код:
ConsoleWrite(0x00400000 + 0x1234ABCD & @LF)
ConsoleWrite('0x' & Hex(0x00400000 + 0x1234ABCD) & @LF)
ConsoleWrite(Binary('0x' & Hex(0x00400000 + 0x1234ABCD)) & @LF)
Или так, если числа слишком большие.
Код:
#Include <WinAPIEx.au3>

ConsoleWrite(Binary('0x' & _WinAPI_Hex64(0x00400000 + 0x1234ABCD, 8)) & @LF)
ConsoleWrite(Binary('0x' & _WinAPI_Hex64(0x00400000 + 0x1234ABCD)) & @LF)
 
Автор
firex

firex

AutoIT Гуру
Сообщения
943
Репутация
208
madmasles
Спасибо :3



Добавлено:
Сообщение автоматически объединено:

Это совсем не нормально, что ему не нравится?
Код:
$test1 = 0x00400000
$test2 = 0x0006789A
MsgBox(64,"TEST",Binary('0x' & Hex($test1 + $test2)))

Все работает.

А вот так:
Код:
$eBase = Binary("0x" & "00400000")
$eOffset = Binary("0x" & "0006789A")
MsgBox(64,"TEST",Binary("0x" & Hex($eBase + $eOffset)))

Соединяет $eBase и $eOffset как текстовые строки.
И на выходе бред.

В чем проблема?
P.S. На обе строки функция IsBinary выдает положительный результат.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
firex,
Код:
$eBase = Dec('00400000')
$eOffset = Dec('0006789A')
ConsoleWrite('Dec: ' & $eBase + $eOffset & @TAB & 'Hex: ' & Hex($eBase + $eOffset) & @LF)
А зачем Вам это надо?
 
Верх