struct C++ i dane w pamięci

0

W pamięci mam jakieś dane oraz mam uchwyt do tych danych buf.
Mam również zdefiniowane

struct INFO {
byte dane[26];
byte IpWy[4]; * źródło adrIP [27 bajt - 31 bajt] *
byte IpWe[4]; * cel adres IP [32 bajt - 36 bajt] * short portWy; // int port Wejsciowy
short portWe;
....
}

W programi robie rzutowanie danych do typu tzn

    mojeinfo=(struct INFO *)(buf+off+19);

gdzie buf to ten wskaznik.
Wszystko jest OK ale
jeżeli chce pobrać wartości z portWy lub portWe to okazuje się że dane postaci ... 0b1a są wprowadzane nie jako:
portWy 0b1a ale
portWy 1a0b

Jak zrobić aby była właściwa kolejność?
--Radek B.

0

To jest wlasciwa kolenosc. Wielobajtowe liczby calkowite sa zapisywane w pamieci poczawszy od najmniej znaczacego bajtu.--Pawel {Delphi 6 Personal}

Po pierwsze: naciśnij F1

0

Masz rację ale jak zrobić aby było tak jak ja chce?
--Radek B.

0

W Delphi służy do tego Swap. W Assemblerze BSWAP. A w C++?
Znam tylko ten sposób:

pom = portWy;
portWy &lt&lt= 8;
pom &gt&gt= 8;
portWy |= (pom & 0xFF);

[stuk] Chyba nic nie pomyliłem.

[Dopisane później]

Już wiem co w C++ swab:

pom = portWy
swab(pom, portWy, strlen(portWy);

--
Jest jeszcze jeden błąd ... :)

Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.

1 użytkowników online, w tym zalogowanych: 0, gości: 1