Здравствуйте, Аноним, Вы писали:
А>Как раздраконить на 4 байта,
А>формула есть какая нибудь ?
А>dw:=200;
А>b1:=0;
А>b2:=0;
А>b3:=0;
А>b4:=200;
А>dw:= > 255 to 9999999 ?
в билдере и просто в с++:
из dword в байты:
b1 = (dw >> 24) & 0xff;
b2 = (dw >> 16) & 0xff;
b3 = (dw >> 8) & 0xff;
b4 = (dw >> 0) & 0xff;
или
unsigned char b[4];
memcpy(&b, &dw, 4);
или
unsigned char b[4];
(unsigned long int &)b = dw;
или
union un
{
dword dw;
unsigned char b[4];
};
un.dw = 0xab12ed64;
unsigned char b1 = un.b[0];
unsigned char b2 = un.b[1];
...
обратно:
dw = (b1 << 24) | (b2 << 16) | (b3 << 8) | b4;
или
unsigned char b[4];//заполнить значениями отдельных байт
memcpy(&dw, &b, 4);
или
unsigned char b[4];//заполнить значениями отдельных байт
dw = (unsigned long int &)b;
или
union un
{
dword dw;
unsigned char b[4];
};
//заполнить значениями отдельных байт
unsigned char b1 = un.b[0];
unsigned char b2 = un.b[1];
...
dw = un.dw;
в дельфи обязательно должен быть хотя бы один их этих способов; первый, кажется, — 100%