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