# Wie kann ich einem Buchstaben einen Zahlenwert zuweisen?



## Maxpower123 (2. Nov 2014)

Hi,

ich möchte Hexadezimalzahlen in Dezimalzahlen umrechnen, aber dafür müsste ich ja beispielsweise einem eingegebenen "a" den Wert 10 zuweisen können, damit ich damit rechnen kann. Wie mache ich das?

G


----------



## JavaMeister (2. Nov 2014)

if (char == 'a') 
   value = 10;


Sowas?


----------



## Gucky (3. Nov 2014)

Dann bräuchtest du auch so eine Abfrage, wenn aaaaa eingegeben wird.
Mach es doch so, dass du über den String iterierst. Die erste Zahl nimmst du mit eins mal. Die zweite mit 15, die dritte mit 15*15 und so weiter.
Natürlich musst du dann auf die richtige Eingabe testen und Groß- und Kleinschreibung behandeln.


----------



## ceving (3. Nov 2014)

Long.decode("0xaaaaa");


----------



## Maxpower123 (3. Nov 2014)

Ein character lässt sich doch gar nicht über die Scanner-Klasse einlesen, oder? Und String lässt sich nicht zu einem Integer casten.
Außerdem kann ich die eingegebene Zahl nicht nach Einer, Zehner und Hunderter usw. aufteilen, wenn in ihr Buchstaben enthalten sind, die keinem Wert zugewiesen worden sind.


----------



## Maxpower123 (3. Nov 2014)

Hier sollte jetzt beispielsweise 10 und nicht a ausgegeben werden.


```
char hexa = Terminal.readChar();
        int hexanumber = hexa;
        
        if (hexa == a) {
            hexanumber = hexanumber + 10;
        }

        System.out.println(hexa);
```


----------



## JavaMeister (3. Nov 2014)

Sorry, dann musst du das auch hinschreiben. Da steht, dass hexa ausgegeben werden soll. Und genau das passiert. 

Du musst schon ein wenig mitdenken, sonst dauert das hier ewig.


----------



## Maxpower123 (3. Nov 2014)

Gut, dann schreib ich das so:


```
char hexa = Terminal.readChar();
        int hexanumber = hexa;

        if (hexa == a) {
        hexanumber = hexanumber + 10;
        }

        System.out.println(hexanumber);
```

Funktioniert aber immer noch nicht.


----------



## JavaMeister (3. Nov 2014)

Klar funktioniert das nicht, weil a nicht definiert ist.. Du meinst vermutlich 'a'

 int hexanumber = hexa; 

und char zu int, erhälst du den ascii Code für diese zahl. Das möchtest du nicht, denn dann wäre das 97. Ich glaube nicht, dass du das willst.


----------



## Maxpower123 (3. Nov 2014)

Nein, natürlich nicht, das wäre ja nicht 10.


----------



## JavaMeister (3. Nov 2014)

Wie sehe das dann richtig aus?


----------



## Maxpower123 (3. Nov 2014)

```
int hexa = Terminal.readChar();
        

        if (hexa == 'a') {
            int hexanumber = hexa;
            hexanumber = hexanumber - 87;
            System.out.println(hexanumber);
        } else if (hexa == 'b') {
            int hexanumber = hexa;
            hexanumber = hexanumber - 87;
        } else if (hexa == 'c') {
            int hexanumber = hexa;
            hexanumber = hexanumber - 87;
        } else if (hexa == 'd') {
            int hexanumber = hexa;
            hexanumber = hexanumber - 87;
        } else if (hexa == 'e') {
            int hexanumber = hexa;
            hexanumber = hexanumber - 87;
        } else if (hexa == 'f') {
            int hexanumber = hexa;
            hexanumber = hexanumber - 87;
        }
```


----------



## JavaMeister (3. Nov 2014)

Sehr kreativ... Aber noch nich 100 % brauchbar, da deine hexanumber nun nicht mehr außen sichbar sind.

Und statt der Umrechnung von ascii nach hex wert, könnte man den hexwert direkt hinschreiben.


----------



## Maxpower123 (3. Nov 2014)

Und wie macht man das?


----------



## JavaMeister (3. Nov 2014)

```
int hexa = Terminal.readChar();
int hexanumber = 0;

if (hexa == 'a') {

hexanumber = 10;
}


System.out.println(hexanumber);
```


----------



## Maxpower123 (3. Nov 2014)

Wenn ich jetzt aber a und b gemeinsam eingebe, erhalte ich nur a. Wie kann ich beide Fälle überprüfen?


```
public static void calculatedeci() {

        int hexa = Terminal.readChar();
        int hexanumbera = 0;
        int hexanumberb = 0;
        
        if (hexa == 'a')
            hexanumbera = 10;
        if (hexa == 'b')
            hexanumberb = 11;
        
        
        System.out.println(hexanumbera+hexanumberb);
```


----------



## JavaMeister (3. Nov 2014)

Dann müsste man da eine Schleife machen..

Statt jede Variable einzelnt aufführen.


----------



## Maxpower123 (3. Nov 2014)

Das funktioniert irgendwie nicht ...


```
int hexa = Terminal.readChar();
        int hexanumbera = 0;
        int hexanumberb = 0;

        int i = 10;

        while (i <= 15) {
            if (hexa == 'a')
                hexanumbera = i;
            else if (hexa == 'b')
                hexanumberb = i;
            }
            
            i++;
```


----------



## JavaMeister (3. Nov 2014)

Dann überleg mal, was du hier wiederholst.


----------



## Maxpower123 (3. Nov 2014)

Die erste Bedingung.


----------



## JavaMeister (3. Nov 2014)

Und welche Schlussfolgerung ziehst du daraus?


----------



## Maxpower123 (3. Nov 2014)

Warum kann ich das nicht so schreiben?


```
if (hexa == 'a' || 'b')
        while (i <= 15) {
            
                hexanumbera = i;
                i++;
                hexanumberb = i;
                i++;
                hexanumberc = i;
                i++;
                hexanumberd = i;
                i++;
                hexanumbere = i;
                i++;
                hexanumberf = i;
                }
```


----------



## JavaMeister (3. Nov 2014)

Weil es totaler Unsinn ist? ;D

Sorry, aber das wird mir hier zu anstrengend:

Hier 20 Sekunden google:

Hex2Decimal.java


----------



## Gucky (4. Nov 2014)

Und eins von mir noch: denk bitte an die Java-Tags.


----------



## Maxpower123 (4. Nov 2014)

JavaMeister hat gesagt.:


> Weil es totaler Unsinn ist? ;D
> 
> Sorry, aber das wird mir hier zu anstrengend:
> 
> ...



Oh nein, dabei warst du doch so hilfreich!!!


----------



## Gucky (4. Nov 2014)

@maxpower
Du hast überhaupt keine Eigeninitiative gezeigt und dann verliehrt man irgendwann die Lust. Zudem ist dein Problem schon tausendfach im Internet gelöst worden. Gib einfach bei Google hex zu int ein und du wirst erschlagen von Ergebnissen.


----------



## JavaMeister (4. Nov 2014)

Gucky hat gesagt.:


> Und eins von mir noch: denk bitte an die Java-Tags.



In dem Schnell-Antwort Fenst kann man keine Java Tags setzen und das immer zu schreiben ist lästig.



> Oh nein, dabei warst du doch so hilfreich!!!



Sarkasmus?


----------

