Hex in Dez unter Unix umwandeln.

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von rommi, 28.03.2006.

  1. rommi

    rommi Grünschnabel

    Dabei seit:
    28.03.2006
    Beiträge:
    4
    Zustimmungen:
    0
    Hallo Unix'ler,

    möchte unter Unix eine Hexzahl in eine Dezimalzahl umwandel. Wer weiss
    hier ein Kommando?

    Umgekehrt (von Dez nach Hex) weiss ich wie es funktioniert:

    printf "%x" 200

    Gruss
    rommi
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. Lord_x

    Lord_x Guest

    Hi

    Das hier weiss ich noch aus meiner Schule:
    Code:
    /* Ein-und Ausgabe dezimaler, oktaler und hexadezimaler Zahlen  */
    #include <stdio.h>
    main() 
    {
       int i;
       printf("dezimale Zahl angeben: ");
       scanf("%d", &i); 
       printf("dezimal %d in hexadezimaler Darstellung: 0x%x\n",i,i);
       printf("dezimal %d in oktaler       Darstellung: 0%o\n",i,i);
       printf("hexadezimale Zahl (ohne 0x) eingeben: ");
       scanf("%x", &i); 
       printf("hexadezimal 0x%x in dezimaler Darstellung: %d\n",i,i);
       printf("hexadezimal 0x%x in oktaler   Darstellung: 0%o\n",i,i);
       printf("oktale Zahl (ohne 0) eingeben: ");
       scanf("%o", &i); 
       printf("oktal 0%o in dezimaler     Darstellung: %d\n",i,i);
       printf("oktal 0%o in hexadezimaler Darstellung: 0x%x\n",i,i);
       return 0;
    }
    Vielleicht hilft es dir...
     
  4. #3 StyleWarZ, 28.03.2006
    StyleWarZ

    StyleWarZ Profi Daten Verschieber

    Dabei seit:
    05.03.2004
    Beiträge:
    1.929
    Zustimmungen:
    0
    wäre das ganze nich eher im programmier forum anstatt unter installation & basiskonfiguration zuhause?
     
  5. rommi

    rommi Grünschnabel

    Dabei seit:
    28.03.2006
    Beiträge:
    4
    Zustimmungen:
    0
    Hallo Lord x
    das hilft mir schon! Habs gerade ma ausprobiert mit:
    printf "%d" 0xC8

    und es wird umgewandelt! Weisst du noch wie man das auch ohne der
    0x machen kann? :-)

    @StyleWarZ
    War mir leider auch nicht sicher! Habs jetzt mal hier probiert weil es ja nur
    ein Kommando ist und nicht gleich ein ganzes Programm! Kann man den Beitrag noch in das Programmierforum verschieben?

    Gruss
    dingdong
     
  6. #5 StyleWarZ, 28.03.2006
    StyleWarZ

    StyleWarZ Profi Daten Verschieber

    Dabei seit:
    05.03.2004
    Beiträge:
    1.929
    Zustimmungen:
    0
    np, passiert mir auch. jo, aber das muss ein mod machen
     
  7. #6 cremi, 28.03.2006
    Zuletzt bearbeitet: 28.03.2006
    cremi

    cremi Dude

    Dabei seit:
    15.02.2004
    Beiträge:
    329
    Zustimmungen:
    0
    Ort:
    AUT/Ktn
    ohne Ox wird so mit printf nicht funktionieren denn printf benötigt das um zu wissen dass es sich um eine hex-zahl handelt - glaub ich halt ;)

    aber vielleicht hilft dir kleine c++ progi:
    Code:
    #include <iostream>
    
    using namespace std;
    
    string int2hex(int dec);
    int hex2int(string hex);
    
    int main(int argc, char* argv[])
    {
            string hex = int2hex(49152);  
            cout << hex.c_str() << endl;   
            int dec = hex2int("C000");  
            cout << dec << endl;     
    		
            return 0;
    }
    
    string int2hex(int dec)        
    {
            string hex = "";       
    
            for (int i=2*sizeof(int)-1; i>=0; i--)
            {
                    hex+="0123456789ABCDEF"[((dec>>i*4) & 0xF)];
            }
            return hex;                   
    }
    
    int hex2int(string hex)     
    {
            int dec=0;
    	    int fakt=1;
    
            for (int i=hex.length()-1; i>=0; i--)
            {
                    (hex[i]>57)?hex[i]-=55:hex[i]-=48; 
                    dec+=(int)hex[i]*fakt;
                    fakt*=16;                   
            }
            return dec;
    } 
    
     
  8. rommi

    rommi Grünschnabel

    Dabei seit:
    28.03.2006
    Beiträge:
    4
    Zustimmungen:
    0
    Danke an Alle habs selbst gefunden! echo 'ibase=16;C8' | bc

    Mit echo 'ibase=16;C8' | bc funktioniert es!

    gruss
    dingdong
     
  9. Lord_x

    Lord_x Guest

  10. cremi

    cremi Dude

    Dabei seit:
    15.02.2004
    Beiträge:
    329
    Zustimmungen:
    0
    Ort:
    AUT/Ktn
    ich dachte du willst das in einem c/c++ prog haben
     
  11. rommi

    rommi Grünschnabel

    Dabei seit:
    28.03.2006
    Beiträge:
    4
    Zustimmungen:
    0
    @Cremi. Bin froh wenns mit Unix klappt!

    Hallo Cremi,

    ich und C++ das kannste vergessen! Bin froh wenn ich ein paar Unix-Kommandos kenne :D

    Aber sollt ich C++ nochmal lernen müssen komme ich gerne auf dich zurück.

    Danke für deinen Beitrag.

    Gruss
    dingdong
     
  12. #11 Wolfgang, 28.03.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Zumindest die Bash kann das Umrechnen von verschiedenen base in dezimal recht simpel.
    Dazu braucht es bei Integer kein bc.
    Synt.:
    echo $((base#NUM))
    base = Inputbasis
    NUM = Wert
    Ausgabe ist dezimal
    Beispiel
    $echo $((16#FF))
    255


    Gruß Wolfgang
     
  13. #12 Wolfgang, 28.03.2006
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo

    Also die Frage hatte ja nun nix mit c oder c++ zu tun.
    Da war einer zu schnell beim Verschieben.

    Gruß Wolfgang
     
  14. #13 Havoc][, 29.03.2006
    Zuletzt bearbeitet: 29.03.2006
    Havoc][

    Havoc][ Debian && Gentoo'ler

    Dabei seit:
    27.07.2003
    Beiträge:
    898
    Zustimmungen:
    0
    Ort:
    GER/BaWü/Karlsruhe (bzw. GER/NRW/Siegen)
    Danke Wolfgang.

    Havoc][
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 Schlaubi_fi.de, 29.03.2006
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Falsch
    Code:
    $echo $((16#FF))
    [i]255[/i]
    Richtig:
    Code:
    echo $((16#FF))
    [i]255[/i]
    Armer Wolfi..das Perl steckt da schon ganz tief drin :headup: :D :D :D
     
  17. #15 supersucker, 29.03.2006
    supersucker

    supersucker Foren Gott

    Dabei seit:
    21.02.2005
    Beiträge:
    3.873
    Zustimmungen:
    0
Thema: Hex in Dez unter Unix umwandeln.
Besucher kamen mit folgenden Suchen
  1. debian konvertieren hex in string

    ,
  2. shell ínt2hex

    ,
  3. hexadezimal in dezimal umrechnen c

Die Seite wird geladen...

Hex in Dez unter Unix umwandeln. - Ähnliche Themen

  1. Wie kann ich unter Unix (AIX) schnell viele Dateien löschen ?

    Wie kann ich unter Unix (AIX) schnell viele Dateien löschen ?: Ich habe eine NAS-Platte gemountet, auf der unzählige Logfiles liegen. Die Ältesten möchte ich nun zwecks Bereinigung löschen. Das dauert...
  2. Unix-Desktop CDE unter einer freien Lizenz veröffentlicht

    Unix-Desktop CDE unter einer freien Lizenz veröffentlicht: CDE, der ehemalige Standard-Desktop unter Unix-Systemen, steht ab sofort unter den Bedingungen der freien GNU Lesser General Public License...
  3. Unixboard Wiki - eigenes Unterforum

    Unixboard Wiki - eigenes Unterforum: Hi, ich habe schon vor einiger Zeit, als ich auf der Suche nach interessanten Projekten zum Mitarbeiten war, Nachforschungen zum Unixboard Wiki...
  4. Unter welchem OS läuft Unixware

    Unter welchem OS läuft Unixware: Hallo,und zwar auf welchen betriebsystem läuft unixware ausser mit vmware.
  5. PCI-Programmierung unter Unix

    PCI-Programmierung unter Unix: Wer befasst sich damit? Ich würde mich diesbezüglich gerne weiterbilden und suche nach einer geeigneten Testplattform.