c++ wie kann ich ascii zu hexadezimal umwandeln?

4 Antworten

Was meinst du mit hexadezimal speichern?

In einer Datei? - Das könnte gehen, indem du den Eingang in den Stream, der die Datei beschreibt, durch std::hex jagst oder eine eigene Funktion verwendest oder notfalls printf.

Intern im Speicher? Da ist ohnehin alles binär bzw. bei Zusammenfassung von je 4 Bit hexadezimal.

das sieht man doch :D da steht ja "std::string hex = std::string << asc;" das ist ja das was nicht klappt, also in eine variable

1

Für so was gibt's stringstream.

1

so wie ich das verstehe ist dein hex-wert durch ein einziges ascii zeichen bestimmt ... also ausgabe 00 - FF. also warum dann nicht einfach 2 char definierren c1, c2. c1 sind die ersten 4 bits von asc, c2 die letzten 4 bits. erste 4 bits mit SHR, letzte 4 bits mit & 15. es würde aber jetzt für c1 und c2 ein char zwischen 0 und 15 rauskommen. du brauchst aber chars zwischen 48 und 57 und 65 und 69. Also erstmal 48 zum c1 und c2 wert dazuzählen und wenn das ergebnis > 57 ist, dann 7 hinzuaddieren. nun das ganze in C formulieren. Bemerkung 48 ist ASCII der Zahl 0, 65 ist ASCII des Buchstabens A.

Ein einzelnes Zeichen kannst Du wie folgt umwandeln:

const char *hex=(const char *)"0123456789ABCDEF";
// Annahme: char c enthält Eingabe.
char out1,out2;

out1=hex[(c>>4)&0xf];
out2=hex[ c    &0xf];
// jetzt steht in out1 die erste und in out2 die zweite
// Hexadezimalziffer

Warum funktioniert cin.clear() und cin.sysnc() nicht?

#include <iostream>
#include<string>
using namespace std;
int main() { string r; string geschlecht; int alter = 2; while (true) { cout << "Bist du Maennlich(m) oder Weiblich(w)" << endl; cin >> geschlecht;
    if (geschlecht == "m" || geschlecht == "maennlich") {
        geschlecht = "Herr";
        break;
    }
    else if (geschlecht == "w" || geschlecht == "weiblich") {
        geschlecht = "Frau";
        break;
    }
    else {
        cout &lt;&lt; "\nBitte gib ein gueltiges Geschlecht an!\n";
    }
}


while(true){
    cin.clear();
    cin.sync();
    cout&lt;&lt;"\nWie alt bist du?";
    cin &gt;&gt; alter;
    if (alter != 2) {
        cin.clear();
        cin.sync();
        break;
    }
    else {

        cout &lt;&lt; "\nBitte gib ein gueltiges Alter an!";
    }
    
    
}

cout &lt;&lt; geschlecht&lt;&lt;endl &lt;&lt; alter;
system("Pause");

return 0;
}
...zur Frage

Moin Leute, c++ Programm für Pythagoras geht in Schleife bei Eingebung eines char's für die Variable. Warum und wie kann ich das stoppen?

Hier der Code (Ich bin blutiger Beginner in C++, ist mein 3tes Programm):

//ich glaube ein paar von den bibs brauche ich gar nicht

include <iostream>

include <cmath>

include <stdio.h>

include <stdlib.h>

int main(int argc, const char** argv)

{

char c = ' ';

//Anfang der do-while-Schleife für den Pyhagoras

do

{

//Deklarierung der Variablen als Gleitkommazahlen

double a;

double b;

//Dialog über in- und output

std::cout << "Satz des Pythagoras\n";

std::cout << "Geben sie Variable a ein\n";

std::cin >> a;

std::cout << "Geben sie Variable b ein\n";

std::cin >> b;

//eigentliche Berechnung

std::cout << "c = " << sqrt(pow(a , 2) + pow(b , 2)) << std::endl;

{

//Feedback mit if-else

char antwort = ' ';

std::cout << "Sind sie zufrieden mit dem Ergbenis? (y/n)\n";

std::cin >> antwort;

if ( antwort == 'y' ) p rintf ("Alles klar\n");

else printf ("Machs halt selber\n");

}

std::cout << "Schreib 'k' fuer Ende. Schreib irgendetwas anderes fuer Wiederholung.\n";

std::cin >> c;

for (; c == 'k';)

{

std::cout << "Ende" << std::endl;

}

} while (c != 'k');

return 0;

}

...zur Frage

*Gelöst* C ++ Ausgabe einer Variable?

Ich würde gerne wissen was ich falsch mache. Wenn ich drei Zahlen eingebe, denn vergleicht das Programm sie aber gibt nur die Buchstaben a,b,c aus und nicht die eingegebenen Zahlen. Wenn ihr eine Idee habt sagt mir Bitte bescheid. Danke im vorraus.

Programm Text ist aufgeführt. Programm ist soweit richtig und funktioniert.

#include <iostream>

using namespace std;

int main()

{

   int a,b,c;

   cout << "Bitte erste Zahl eingeben." << endl;

   cin >> a;

   cout << "Bitte zweite Zahl eingeben." << endl;

   cin >> b;

   cout << "Bitte dritte Zahl eingeben." << endl;

   cin >> c;

   if (a < b) {

      if ( b < c) {

         cout << "a,b,c" << endl;

      } else {

         if (a < c) {

            cout << "a,c,b" << endl;

         } else {

            if ( c > a);

               cout << "c,a,b" << endl;

         }

      }

   } else {

       if ( a < c) {

         cout << "b,a,c" << endl;

      } else {

           if (c > a) {

            cout << "b,c,a" << endl;

      } else {

      if (c < b){

         if (b < a) {

            cout << "c,b,a" << endl;

         } else {

                   cout << "a,b,c" << endl;

         }

      }

   }

   system ("pause");

   return 0;

       }

   }

}      

...zur Frage

C++ IF bedingung(Anfängerproblem)

Guten Tag, wollte eben ein Übungsprogramm schreiben mit dem man einen Preisnachlass berechnen lassen kann:

Wenn man mehr als 10 Laptops kauft gibts 18% rabatt und keine versandkosten. Mein Problem ist, dass ich nicht weiss wie ich die Anzahl der Laptops in eine rechnung mit einbeziehen kann->

#include <iostream>
#include<string>

using namespace std;
int main() 

{
    double nettobetrag, nettobetragS;
    string laptops;
    cout<<"Anzahl der Laptops:  ";
    cin>>laptops;
    cout<<"Nettobetrag pro Stueck:";
    cin>>nettobetragS;



    if (laptops>"10")
    {       nettobetrag=laptops*nettobetragS;
              cout<<"Nettobetrag:"<<nettobetrag;
              .................





    }




    cout<<endl;

    return 0;

}
...zur Frage

Komma im Binärcode?

Wie wird ein Binärcode in einen Hexadezimalcode umgewandelt, wenn er ein Komma enthält? Beispiele: 1110,01 1011,111 1101,011

...zur Frage

Wie kann man einen Java Code in einen String zurück umformen?

Wie funktioniert es, dass man eine int variable mit einem ascii Code in einem String, also Buchstaben umformen kann?(Java,BlueJ)

...zur Frage

Was möchtest Du wissen?