Страница: 1 |
Страница: 1 |
Вопрос: Конвертация 4-ех байтов в DWORD константу
Добавлено: 18.08.06 17:02
Автор вопроса: alex
Предположим, у меня есть массив из 4 байтов. Мне нужно его преобразовать в одну константу типа DWORD
Примерно так:
Dim Rez as Dword
Bt(1)=90
Bt(2)=41
Bt(3)=131
Bt(4)=1
Rez=Bt()
И обратно:
Подскажите, как это лучше и оптимальнее сделать.
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #1
Добавлено: 18.08.06 17:21
#COMPILE EXE
#DIM ALL
UNION byte2dword
Arr(3) AS BYTE
sStr AS STRING *4
dw AS  WORD
END UNION
FUNCTION PBMAIN () AS LONG
 IM b2dw AS byte2dword
' byte Array to dword
b2dw.Arr(0)=1
b2dw.Arr(1)=2
b2dw.Arr(2)=3
b2dw.Arr(3)=4
? STR$(b2dw.dw)
' Byte to dword
b2dw.dw=1234
? STR$(b2dw.Arr(0))
? STR$(b2dw.Arr(1))
? STR$(b2dw.Arr(2))
? STR$(b2dw.Arr(3))
' string 2 dword
b2dw.sStr="ABCD"
? STR$(b2dw.dw)
END FUNCTION
Номер ответа: 2
Автор ответа:
alex
Вопросов: 84
Ответов: 453
Профиль | | #2
Добавлено: 18.08.06 17:39
JMP - спасибо, я уже и забыл, что в PB есть такая замечательная штука как UNION ! )
Номер ответа: 3
Автор ответа:
JMP
Вопросов: 6
Ответов: 171
Профиль | | #3
Добавлено: 18.08.06 18:06
Не за что, кстати в 8-ке можно уже и битовыми полями работать.