Hex in Dez unter Unix umwandeln.

R

rommi

Grünschnabel
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
 
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...
 
wäre das ganze nich eher im programmier forum anstatt unter installation & basiskonfiguration zuhause?
 
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
 
np, passiert mir auch. jo, aber das muss ein mod machen
 
rommi schrieb:
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? :-)

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;
}
 
Zuletzt bearbeitet:
Danke an Alle habs selbst gefunden! echo 'ibase=16;C8' | bc

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

gruss
dingdong
 
@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
 
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
 
Hallo

Also die Frage hatte ja nun nix mit c oder c++ zu tun.
möchte unter Unix eine Hexzahl in eine Dezimalzahl umwandel. Wer weiss
hier ein Kommando?

Da war einer zu schnell beim Verschieben.

Gruß Wolfgang
 
Danke Wolfgang.

Havoc][
 
Zuletzt bearbeitet:
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
 
Schlaubi_fi.de schrieb:
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

Nö, das $ ist nur Teil meiner Shell Prompt welches ich mit einkopiert habe.
Noch ein Eigentor?
:D :D
So schlimm ist es doch noch nicht. :D
Wenn du meine Syntaxbeschreibung richtig liest, müsstest du das erkennen.
Gruß Wolfgang
 
Wolfgang schrieb:
Nö, das $ ist nur Teil meiner Shell Prompt welches ich mit einkopiert habe.
ach das kann ja Jeder sagen hehe... :D :D :D
Gönn' doch Deinem Prompt mal ein Leerzeichen am Schluss, dann klappts auch mit Copy&Paste :devil: (*hier stünde normal der Knuddl-Smilie*)
 

Ähnliche Themen

Kernel Kaltstart / reboot?

Skript soll nicht doppelt laufen... kill pkill pid cron

Adobe Acrobat Reader Linux

Nginx als Reverse Proxy für Nextcloud und Emby

Samba 4.0.0 - DNS-Problem

Zurück
Oben