tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
6127
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ObScUrItAs ObScUrItAs ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    20
    Ich habe einen String , in dem binäre Werte stehen. Wie kann ich diese binäre Werte in hexadezimale Werte wandeln ?
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.800
    Blog-Einträge
    5
    Einfach über jedes einzelne Zeichen des Strings iterieren und mittels sprintf und strcat einen String mit Hexadezimalwerten erstellen.
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    ObScUrItAs ObScUrItAs ist offline Mitglied
    Registriert seit
    Apr 2005
    Beiträge
    20
    ok , thx

    ich habe es probiert, aber es funktioniert nicht so ganz.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
     
    char szString2[300];
    char szString[300];
     
     
    strcat(szString2,szString);
     
    dp = fopen("bin.txt" , "wb");
    fputs(szString2,dp);
    fclose(dp);
     
    sprintf(szString2,"%x",szString);
     
    dp = fopen("hex.txt" , "w");
    fputs(szString2,dp);
    fclose(dp);

    Der Binärwert in szString ist :  ä¤p¥‚ÄÏõÀ5D+]
    Der Binärwert in der Datei bin.txt ist : ä¤p¥‚ÄÏõÀ5D+]
    Der Hexa-Wert sollte sein : 15e4a470a5la82c4cff5c00435442b5d
    Der Wert in der Datei hex.txt ist : 12fe54

    Warum ?

    Alternativ habe ich noch das hier ausprobiert :

    Code :
    1
    2
    3
    
    dp = fopen("hex.txt" , "w");
    fprintf(dp,"%x",szString);
    fclose(dp);

    Der Wert von szString ist der selbe wie oben. In der Datei hex.txt steht wieder : 12fe54
     

  4. #4
    Avatar von Gawayn
    Gawayn Gawayn ist offline Mitglied Brokat
    Registriert seit
    Dec 2003
    Beiträge
    309
    Wenn dein String nur Einsen und Nullen enthält, kannst du auch sehr einfach selbst eine Konvertierungsroutine schreiben, weil sich ja im Binärsystem ein Block von 4 Ziffern 1:1 in eine Hexziffer übersetzen lässt.

    -Gawayn
     

  5. #5
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.800
    Blog-Einträge
    5
    Ich hab ja auch gesagt, du sollst über jedes einzelne Zeichen des Strings iterieren! Wenn du es direkt von einer Datei in die andere übertragen willst, dann versuch es mal so in der Art:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    #include <stdio.h>
     
    int main()
    {
        int c;
     
        FILE *fpIn = fopen("bin.txt", "rb");
        FILE *fpOut = fopen("hex.txt", "w");
        
        while ((c = fgetc(fpIn)) != EOF) {
            fprintf(fpOut, "%x", c);
        }
     
        fclose(fpOut);
        fclose(fpIn);   
     
        return 0;
    }
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 23.11.09, 19:22
  2. Antworten: 2
    Letzter Beitrag: 30.09.09, 23:10
  3. Prüfen, ob String einen anderen String enthält
    Von kleinevroni im Forum Java
    Antworten: 4
    Letzter Beitrag: 02.11.05, 12:35
  4. Antworten: 5
    Letzter Beitrag: 02.08.05, 17:07
  5. VC++-DLL die einen String liefert?
    Von ManicMarble im Forum VisualStudio & MFC
    Antworten: 3
    Letzter Beitrag: 29.04.04, 20:34