Re: Jak to v C++ napsat líp?
Pablo na xpablo.cz
Pablo na xpablo.cz
Čtvrtek Srpen 31 09:22:01 CEST 2023
Tak doporucuju cely "paket" udelat jako strukturu, popripade s vyuzitim
unionu a to pak odeslat. Snadneji a hlavne prehledneji se s tim pracuje.
Nezapomente pripadne na pakovani prvku, at nemate ve vyslednem streamu diry,
zpusobene zarovnavanim prekladacem.
--
Pavel Brychta
http://www.xpablo.cz
---------- Původní e-mail ----------
Od: Martin Záruba <swz na volny.cz>
Komu: hw-list na list.hw.cz
Datum: 31. 8. 2023 9:12:46
Předmět: Re: Jak to v C++ napsat líp?
"
To není 0xa0 0xb0, ale znaky AB, tedy 0x41 0x42. To pole je uint16_t proto,
aby se s ním rozumně pracovalo, ale pak se přenáší na server jako sekvence
byte. No a já do něj také potřebuji uložit text. Celý přenos je tak jediný
příkaz
client.write((byte*)A,počet_znaků);
to pole je pochopitelně větší, než 2 znaky.
Martin Záruba
Dne 31.8.2023 v 8:31 Ladislav Vaiz napsal(a):
"On 31.08.2023 8:05, Martin Záruba wrote:
"Mám pole
int A[2];
potřebuji do něj ale vložit čtyři znaky ABCD. Vymyslel jsem
A[0] = ('A' << 8) | 'B';
A[1] = ('C' << 8) | 'D';
nejde to nějak líp? Toto funguje, ale je to docela nesrozumitelné.
" Pokud je to signed char a někdy místo ABCD použijete znaky >=128, tak vám
tam asi začnou přebývat 0xff :-)
Doporučuji přetypovat na unsigned.
#include <stdio.h>
#include <stdint.h>
int main(){
signed char c1 = 0xa0;
signed char c2 = 0xb0;
int16_t a = (c1 << 8) | c2;
printf("%x\n", (unsigned int)a);
}
./a.out
ffffffb0
L.
_______________________________________________
HW-list mailing list - sponsored by www.HW.cz(http://www.hw.cz)
Hw-list na list.hw.cz(mailto:Hw-list na list.hw.cz)
http://list.hw.cz/mailman/listinfo/hw-list
(http://list.hw.cz/mailman/listinfo/hw-list)
" _______________________________________________
HW-list mailing list - sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list
"
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20230831/7631c86e/attachment.htm>
Další informace o konferenci Hw-list