zwei int werte zu einen manipulierten long int wert zusammenfügen



  • Also am schnellsten sollte es in C mit dem <<-Operator gehen.

    short alpha=3;
    short beta=5;
    int gamma=(int)alpha+(((int)beta)<<16);
    cout << gamma << '\n';
    

    Das Ergebnis ist dann 0x3+0x50000=0x50003.

    Edit: Unsinn, jetzt sollte die Rechnung stimmen. Zahlensysteme....



  • Schön und gut, nur hat cout nichts mit ISO-C zu tun...



  • Thuruk schrieb:

    short alpha=3;
    short beta=5;
    int gamma=(int)alpha+(((int)beta)<<16);
    cout << gamma << '\n';
    

    Das Ergebnis ist dann 0x3+0x50000=0x50003.

    Das ist aber nicht das Ziel!



  • Was willst du denn haben. Einen aus zwei int zusammen gesetzten long int oder einen String mit eingefügten Nullen? Mir ist die Frage nicht klar! 🤡



  • Belli schrieb:

    Thuruk schrieb:

    short alpha=3;
    short beta=5;
    int gamma=(int)alpha+(((int)beta)<<16);
    cout << gamma << '\n';
    

    Das Ergebnis ist dann 0x3+0x50000=0x50003.

    Das ist aber nicht das Ziel!

    Also wenn man nach dem Titel des Themas geht, schon. Dann kann er einfach short und int zu int und long int machen und es funzt.

    Andernfalls steht die Antwort eh schon zur Verfügung.

    PrettyC schrieb:

    Schön und gut, nur hat cout nichts mit ISO-C zu tun...

    Schön und gut, nur geht es so schneller als mit printf(...). Also zum Tippen jetzt, keine Ahnung ob es da Unterschiede gibt.^^



  • Thuruk schrieb:

    Belli schrieb:

    Thuruk schrieb:

    short alpha=3;
    short beta=5;
    int gamma=(int)alpha+(((int)beta)<<16);
    cout << gamma << '\n';
    

    Das Ergebnis ist dann 0x3+0x50000=0x50003.

    Das ist aber nicht das Ziel!

    Also wenn man nach dem Titel des Themas geht, schon.

    Vielleicht solltest Du den ganzen Beitrag lesen, und nicht nur den Titel? Bei den Ausgangszahlen, die Du hier als Beispiel nimmst, möchte der TE das Ergebnis

    5003

    haben und bereits die erste Antwort zeigt ihm die Lösung. Probier doch mal Deinen Weg mit den Zahlen aus dem Beispiel des TE und vergleiche dann Dein Ergebnis mit dem, was er als Resultat haben möchte.



  • obendrein würde mein compiler eine cout-Anweisung nicht übersetzen...



  • cout ist aber nun wirklich keine ISO C oder?
    Von daher ist die erste Lösung mit cout fein aber offtopic.



  • Mein Güte, dann stell es dir ohne cout vor, das war ja nur zur Ausgabe.



  • Dein Ergebnis weicht aber auch ohne cout vom Ziel des Threaderstellers ab.


Anmelden zum Antworten