Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » knifflig

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.05.2004, 18:45 Uhr
~thaflo
Gast


Hallo!

kann mir jemand von euch sagen, wie ich ein byte, das ich von der seriellen schnittstelle bekomme, von hexadezimal in einen integer umwandeln kann?
mit hex(meinIntWert) bekomme ich fehler.

danke im voraus,
florian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.05.2004, 19:26 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also angenommen du hast ein byte in nem char gespeichert das du von ner seriellen schnittstelle bekommen hast...

wie gedenkst du das denn zu interpretieren? also welche wertigkeiten sollen welche bits in welcher reihenfolge haben?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.05.2004, 19:33 Uhr
theosoft



sorry, ich verstehe die Frage nicht. hex in int ??????
Der Datentyp Integer hat einen Wert.
Diesen Wert kann man binär, dezimal, oktal, hexadezimal und noch sonstwie darstellen. Schau dir als Beispiel folgenden Codefetzen an:

C++:
#include <conio.h>
#include <stdio.h>
#include <iostream.h>

int main()
{
  int i = 255;
  printf("in hexadezimaler Schrebweise: %x\n",i);
  printf("in dezimaler Schreibweise   : %i\n",i);
  getch();
  return 0;
}


Viel Erfolg, wünscht Theo
--
ifS (immer fröhliches Schaffen)
theosoft

Dieser Post wurde am 06.05.2004 um 19:34 Uhr von theosoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
07.05.2004, 08:44 Uhr
~thaflo
Gast


ich bekomme ein byte(char), z.B. 4A 4B 5F 57.... dann muss ich die zusammenzählen und als integer darstellen.

danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.05.2004, 10:26 Uhr
(un)wissender
Niveauwart


Es geht hier wohl um das klassische umrechen von Zahlensystemen:



C++:
#include <iostream>
#include <cmath>

int hexToDec(std::string hexValue);

int main(int argc, char *args[])
{
    if(argc < 2)
    {
        std::cout << "Anleitung: Programmname [Umzuwandelnde Zahl]\n";                  
        return 0;
    }
      
    std::cout << "Hexwert " << args[1]
              << " ist im dezimalen System " << hexToDec(args[1])
              << ".\n";
    
    return 0;
}

int hexToDec(std::string hexValue)
{
    int result = 0;
    for(int i = hexValue.size() - 1, j = 0; i >= 0; --i, ++j)
    {
        char current = hexValue[i];      
        int value = current >= 'A' ? current - 'A' + 10 : current - '0';        
        result += value * static_cast<int>(pow(16, j));
    }    
    return result;
}



Das funzt so wohl, allerdings gibt es keine Fehlerbehandlung, dass ist deine Aufgabe!
--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 07.05.2004 um 10:36 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.05.2004, 10:39 Uhr
~thaflo
Gast



Zitat:

Das funzt so wohl, allerdings gibt es keine Fehlerbehandlung, dass ist deine Aufgabe!


danke schön, werd ich machen!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: