wert aus zeiger lesen



  • Ja, danke mein denkFehler.



  • Für sowas gibt es reinterpret_cast.
    z.B. ein int vom fünften Byte an:
    int val=*reinterpret_cast<int*>(buffer+4);



  • Ok diese Zahl ist ja hexadezimal aber ich möchte es ANDen dafür bruache ich ja den binär wert oder wie kann ich es sonst lösen



  • Außerdem habe ich auch ein wert -70 drine also -70 '°' das darf doch nicht sein oder mache ich was falsch



  • Das mit den Zahlensystemen hast du noch nicht ganz verstanden...
    der Computer speichert Werte letztenendes meist binär, aber das muss dich gar nicht interessieren. Dieselbe Zahl kann man in verschiedenen Zahlensystem unterschiedlich darstellen, aber dadurch ändert sich der Wert der Zahl nicht...

    Und wieso sollte -70 nicht möglich sein? Das liegt im Wertebereich von int.



  • Ok du hast die zahl liegt schon im bereich int ich habe aber die datei binär eingelesen und ich möchte die zahl ANDen wie soll das mit -70 gehen außerdem ist noch dieses '°' zeichen dahinter



  • Verwende bitte Satzzeichen.

    borhany schrieb:

    ich möchte die zahl ANDen wie soll das mit -70 gehen

    Ganz normal mit operator& . Auch -70 besitzt eine Binärrepräsentation (mit führender 1).

    borhany schrieb:

    außerdem ist noch dieses '°' zeichen dahinter

    Das ist doch ein Problem des Parsens, nicht der Binärdarstellung. Du interpretierst eben nur die Zeichen davor als Zahl.



  • Jetzt willst du deiner CPU nicht mal das Verknüpfen von Zahlen überlassen :<



  • borhany schrieb:

    Ok du hast die zahl liegt schon im bereich int ich habe aber die datei binär eingelesen und ich möchte die zahl ANDen wie soll das mit -70 gehen außerdem ist noch dieses '°' zeichen dahinter

    Das sind Dinge, die überhaupt nichts miteinander zu tun haben.
    Die Binärdarstellung von der Zahl -70 ist (bei 32 Bit):
    11111111111111111111111110111010 (siehe dazu auch Zweierkomplement)

    Wenn es sich aber um Text handelt (d.h. du öffnest die Datei in einem Texteditor und siehst dort "-70°"), sieht das ganz anders aus. Siehe dazu: ASCII
    Binär sehen diese vier Zeichen so aus:
    10110000001100000011011100101101

    Wenn man das als ein 32-Bit-int interpretieren würde, entspräche das der Zahl -1339017427.
    Du musst zwischen Text und Binärzahlen (oder wie du es sonst nennen willst) unterscheiden.



  • danke für die antworten. Ich habe meine Frage glaub ich falsch gestellt und zwar ich wollte wissen ich speichere die zahl als ein char wert wie soll ich ein char wert ANDen



  • Brauchst du etwa eine Zeichenkette aus chars in eine Zahl umsetzen? Dafür gibt es mehrere Möglichkeiten. Du kannst zB unter anderem C-Funktionen wie atoi() benutzen, oder das lexical_cast<> aus Boost library
    Oder hab ich die frage gar nicht verstanden? Auf jeden Fall, man kann Debugger verwenden, um zu sehen, was für den Wert eine Variable in der Realität hat.



  • borhany schrieb:

    danke für die antworten. Ich habe meine Frage glaub ich falsch gestellt und zwar ich wollte wissen ich speichere die zahl als ein char wert wie soll ich ein char wert ANDen

    int deineZahl=10;
    char deinChar=deineZahl;
    char deinANDwert=123;
    char deineGeANDeteZahl=deinChar & deinANDwert;
    


  • borhany schrieb:

    Ich habe meine Frage glaub ich falsch gestellt

    Ja, hast Du. Zu wenig Infos, kein Code, ...

    borhany schrieb:

    und zwar ich wollte wissen ich speichere die zahl als ein char wert wie soll ich ein char wert ANDen

    Versuch's nochmal. Was willst Du machen? Wo liegt das Problem genau? Kennst Du den entsprechenden Operator & noch nicht?

    Du hast -70 erwähnt und Dich gefragt, wie das sein kann. Nun, der Wertebereich von char kann auch negative Zahlen umfassen, muss er aber nicht. Ob char vorzeichenbehaftet oder vorzeichenlos ist, kommt auf deinen Compiler und die verwendeten Optionen an.

    Gruß,
    SP



  • Er will vermutlich die Zahl erstmal aus dem C-string rausholen und in einen integer casten. Stichwort: atoi( char * )

    dann will er diese Zahl mit einer anderen Zahl "AND"en (*gg*).
    Stichwort: int MyANDedInteger = Zahl1 & Zahl2;


Anmelden zum Antworten