<html><body>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.<br><br>-- <br>Pavel Brychta<br>http://www.xpablo.cz<br><br><aside>---------- Původní e-mail ----------<br>Od: Martin Záruba <swz@volny.cz><br>Komu: hw-list@list.hw.cz<br>Datum: 31. 8. 2023 9:12:46<br>Předmět: Re: Jak to v C++ napsat líp?</aside><br><blockquote data-email="swz@volny.cz">
    <p><font face="Arial">To není 0xa0 0xb0, ale znaky AB, tedy 0x41
        0x42. To pole je </font><font face="Arial">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 <br>
      </font></p>
    <p><font face="Arial">client.write((byte*)A,počet_znaků);</font></p>
    <p><font face="Arial">to pole je pochopitelně větší, než 2 znaky.</font><br>
    </p>
    <pre class="-wm-moz-signature">Martin Záruba</pre>
    <div class="-wm-moz-cite-prefix">Dne 31.8.2023 v 8:31 Ladislav Vaiz
      napsal(a):<br>
    </div>
    <blockquote>On
      31.08.2023 8:05, Martin Záruba wrote:
      <br>
      <blockquote>Mám pole
        <br>
        <br>
        int A[2];
        <br>
        <br>
        potřebuji do něj ale vložit  čtyři znaky ABCD. Vymyslel jsem
        <br>
        <br>
        A[0] = ('A' << 8) | 'B';
        <br>
        A[1] = ('C' << 8) | 'D';
        <br>
        <br>
        nejde to nějak líp? Toto funguje, ale je to docela
        nesrozumitelné.
        <br>
        <br>
      </blockquote>
      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 :-)
      <br>
      <br>
      Doporučuji přetypovat na unsigned.
      <br>
      <br>
      <br>
      <br>
      #include <stdio.h>
      <br>
      #include <stdint.h>
      <br>
      <br>
      int main(){
      <br>
          signed char c1 = 0xa0;
      <br>
          signed char c2 = 0xb0;
      <br>
          int16_t a = (c1 << 8) | c2;
      <br>
      <br>
          printf("%x\n", (unsigned int)a);
      <br>
      }
      <br>
      <br>
      <br>
       ./a.out
      <br>
      ffffffb0
      <br>
      <br>
      L.
      <br>
      <br>
      _______________________________________________
      <br>
      HW-list mailing list  -  sponsored by <a class="-wm-moz-txt-link-abbreviated" href="http://www.hw.cz">www.HW.cz</a>
      <br>
      <a class="-wm-moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
      <br>
      <a class="-wm-moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
      <br>
    </blockquote>
  

_______________________________________________
<br>HW-list mailing list  -  sponsored by www.HW.cz
<br>Hw-list@list.hw.cz
<br>http://list.hw.cz/mailman/listinfo/hw-list
<br></blockquote></body></html>