![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос про сдвиги [D7]
ввв © (2008-02-14 17:38:00)Есть такой пример:
ShowMessage(IntToHex(HiWord($1234), 4));
Результат работы - 0000
Почему так получается?
И ещё я так и не пойму как нормально "руками" получить Hi/Lo-Word - ?
ShowMessage(IntToHex($1234 shr 16, 4));
Результат - 0000
ShowMessage(IntToHex($1234 shl 16, 4));
Результат - 12340000
Я хочу получить из word = $1234 отдельно два значения - $12 и $34.
Palladin (2008-02-15 16:08:00) [1]та не курю я больше... та и пиво не закусывают... с мыслями собраться нужно было... а так да... в [4][5][6] согласен... что то бредить начал :)
Ник (2008-02-14 17:56:00) [2]
> Palladin © (14.02.08 17:47) [4]
> Palladin © (14.02.08 17:52) [5]
> Palladin © (14.02.08 17:52) [6]
Закусывать надо или меньше курить :)
Palladin (2008-02-14 17:52:00) [3]
> IntToHex(($12345678 and $0000FFFF),
shl
Palladin (2008-02-14 17:52:00) [4]shl 16 :)
Palladin (2008-02-14 17:47:00) [5]
> ShowMessage(IntToHex(($12345678 and $0000FFFF), 4)); - HiWord
> ShowMessage(IntToHex($12345678 shr 16, 4)); - LoWord
фу млин... идиот.. сам перепутал :) наоборот
Palladin (2008-02-14 17:46:00) [6]
> Есть такой пример:
> ShowMessage(IntToHex(HiWord($1234), 4));
> Результат работы - 0000
>
> Почему так получается?
потому что HiWord это не то что ты думаешь... а именно другая половина и писать потому надо ShowMessage(IntToHex(HiWord($1234 0000), 4));
ShowMessage(IntToHex(($12345678 and $0000FFFF), 4)); - HiWord
ShowMessage(IntToHex($12345678 shr 16, 4)); - LoWord
Johnmen (2008-02-14 17:43:00) [7]ShowMessage(IntToHex($1234 shr 8, 4));
Учить двоичную математику!
Сергей М. (2008-02-14 17:41:00) [8]
> Почему так получается?
Потому что HiWord($1234) действительно = 0
> хочу получить из word = $1234 отдельно два значения - $12
> и $34
Так ведь при этом ты хочешь не Lo/HiWord'ы получить, а Lo/HiByte)