Что нового

Числовое представление строки

Крепыш

Новичок
Сообщения
105
Репутация
2
0xFFE2 в десятичной системе равно 65506
Почему для строки 'яв' ('FFE2') числовое представление не равно 65506?

Код:
_ConsoleWrite(Number('0xFFE2'))
_ConsoleWrite(StringToBinary('яв') == '0xFFE2')
_ConsoleWrite(Number(StringToBinary('яв')))
Результат:
Код:
65506
True
58111
 
A

Alofa

Гость
Думайте:
Код:
ConsoleWrite(Number(0xFFE2) & @CRLF)
ConsoleWrite((Hex(StringToBinary('яв')) == 'FFE2') & @CRLF)
ConsoleWrite(Number('0x' & Hex(StringToBinary('яв'))) & @CRLF)
 
Автор
К

Крепыш

Новичок
Сообщения
105
Репутация
2
Alofa, спасибо.
Видимо, это потому что
Код:
ConsoleWrite((Binary('яв') <> 0xFFE2) & @CRLF)
ConsoleWrite((Binary('яв') = 0xE2FF) & @CRLF)
 
A

Alofa

Гость
Видимо это потому, что кроме десятичной и двоичной системы счисления есть еще и шестнадцатеричная.
 
Автор
К

Крепыш

Новичок
Сообщения
105
Репутация
2
Спасибо, кэп, я о том, что в AutoIt самый младший значащий байт идет первым:
Код:
Binary('0x00FFE2') = 0xE2FF00
 
A

Alofa

Гость
Крепыш сказал(а):
... в AutoIt самый младший значащий байт идет первым...
Вы спускаете число до бит уровня, а затем Autoit считает эти данные как число, для процедуры сравнения, и чего вы ожидаете от little-endian?
 
Автор
К

Крепыш

Новичок
Сообщения
105
Репутация
2
По данной теме всё уже сказано выше.
Крепыш сказал(а):
самый младший значащий байт идет первым
Это и есть "Порядок от младшего к старшему" он же Little-Endian.
По-моему, тема исчерпала себя, не?
 
Верх