| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Для новичков > помогите разобратся с масивом |
| Автор: andrewr 30.9.2007, 22:21 |
| привет, нужна помощь есть: var mass: array [1..4] of byte; i:integer; begin i:=$11223344; как мне сделать чтобы: mass[1]:=$11; mass[2]:=$22; mass[3]:=$33; mass[4]:=$44; просто надо числа заносить в масиве динамически - тоесть i будет менятся. Зарание спасибо! -- будет чтото типа етого: for i:=$11223344 to $22334455 do begin mass[1]:= mass[1]:= mass[1]:= end |
| Автор: BaD_SeCt0R 1.10.2007, 00:43 |
| Используй shl и shr для вытаскивания нужного байта из хекса. |
| Автор: Shaggy 1.10.2007, 01:14 | ||
старый способ:
или LongRec(I).Bytes[0] etc |
| Автор: andrewr 1.10.2007, 01:37 |
| Shaggy Спасиба |
| Автор: ivan219 1.10.2007, 12:13 | ||
А что делать если массив из 9 байт:
Какой тип переменной I использовать. Или дуругой способ есть??? Можно пример??? |
| Автор: Alexeis 1.10.2007, 14:53 |
| ivan219, если массив больше чем на 8 байт, то такое представление i:=$11223344; и не возможно, разве что только как строку. |
| Автор: ivan219 1.10.2007, 15:20 |
Это я понял Int64 имеет 8 байт а как строку я реализовал просто думал по другому получится. А по поводу shl и shr что??? |
| Автор: Alexeis 1.10.2007, 15:28 |
ну с ними все просто если из Ворда нужно вытащить например младший байт, то делаем операцию and c $00FF, если старший то shr 8, т.е. сдвиг всех бит вправо на 8 бит, значит старший станет младшим, а вместо старшего будут нули, аналогично для двойного слова можно делать и т.д. |
| Автор: andrewr 9.10.2007, 12:25 | ||
| for i:=1 to 4 do test[i]:=amss_adress shr (32-(8*i)); сделал
|