Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос про сдвиги [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)


Наверх

Титульная страница Поиск, карта сайта Написать письмо