Rechner dez in Hex umwandeln

Diskutiere Rechner dez in Hex umwandeln im Allgemeine Java-Themen Bereich.
M

monarch

Hallo habe eine aufgabe bekommen verstehe aber nicht wie ich sie lösen kann
//Hausaufgabe Zahlen von 10-15 in A,B,C,D,E,F umwandeln + erklärung

Code:
package com.company;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// write your code here
// 1 2 3 4 5 6 7 8 9 A B C D E F
// 16 % 16 = 1 R 0 = 10
// 42 % 16 = 2 R 10 = 2A
// 45 %16 = 2 R 13 = 2D

// Hilfsvariabeln
int zahl;
int erg;
int zaehler = 1;
int kopie;
int kopieCounter;
//Hilfsobjekte
Scanner scan = new Scanner(System.in);
System.out.println("Bitte Zahl eingeben");
//Rechnung
zahl = scan.nextInt();
kopie=zahl;
while (kopie / 16 > 0) {
zaehler++;
kopie = kopie / 16;

}
System.out.println(zaehler);
kopieCounter = zaehler;
int[] hex=new int[zaehler];
//Zahl umwandeln
while(zahl/16>0){
//-1 wegen terminalzeichen
//array beginnt mit größe 0

hex[zaehler-1]=zahl%16;
zaehler--;
zahl = zahl / 16;

}
hex[0]=zahl;
for(int i =0; i<kopieCounter;i++){
System.out.print(hex);
}
//Hausaufgabe Zahlen von 10-15 in A,B,C,D,E,F umwandeln
// + erklärung

Danke im vorhinaus


}
}
 
MoxxiManagarm

MoxxiManagarm

Ich bin etwas verwirrt von der Aufgabenstellung, willst du nun eine Dezimalzahl in eine Hexzahl umwandeln oder willst du einfach den Zahlen 10-15 A-F zuordnen?
 
krgewb

krgewb

Bitte immer in Code-Tags posten.
Java:
package com.company;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // write your code here
        // 1 2 3 4 5 6 7 8 9 A B C D E F
        // 16 % 16 = 1 R  0 = 10
        // 42 % 16 = 2 R 10 = 2A
        // 45 % 16 = 2 R 13 = 2D

        // Hilfsvariabeln
        int zahl;
        int erg;
        int zaehler = 1;
        int kopie;
        int kopieCounter;
        //Hilfsobjekte
        Scanner scan = new Scanner(System.in);
        System.out.println("Bitte Zahl eingeben");
        //Rechnung
        zahl = scan.nextInt();
        kopie=zahl;
        while (kopie / 16 > 0) {
            zaehler++;
           kopie = kopie / 16;
        }
        System.out.println(zaehler);
        kopieCounter = zaehler;
        int[] hex=new int[zaehler];
        //Zahl umwandeln
        while (zahl / 16 > 0) {
            //-1 wegen terminalzeichen
            //array beginnt mit größe 0

            hex[zaehler - 1] = zahl % 16;
            zaehler--;
            zahl = zahl / 16;
        }
        hex[0] = zahl;
        for (int i = 0; i < kopieCounter; i++) {
            System.out.print(hex[i]);
        }
    }
}
 
I

insert2020

Sicherlich erstmal gewöhnungsbedürftig, aber so geht es auch:
Java:
	public static String convert_to_hex_string(long l) {
		StringBuilder b = new StringBuilder();
		String s = Long.toBinaryString(l);
		for (int i = 0; i < s.length(); i += 4) {
			char[] a = new char[4];
			Arrays.fill(a, '0');
			for (int j = 0; j < s.length() - i && j < 4; j++) {
				a[a.length - j - 1] = s.charAt(s.length() - i - j - 1);
			}
			int k = Integer.parseInt(String.valueOf(a), 2);
			if (k <= 9) {
				b.insert(0, (char) ('0' + k));
			} else {
				b.insert(0, (char) ('A' + k - 10));
			}
		}
		return b.toString();
	}

	public static void main(String[] args) {
		System.out.println(convert_to_hex_string(843333));
	}
 
Cromewell

Cromewell

Habe schon lange nichts mehr in Java gemacht, aber ich hätt's auch eher "klassisch" gelöst:

Java:
public static final String[] HEX_CODES = new String[]{"0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"};

public static String decToHex(long dec) {
    StringBuilder result = new StringBuilder();
    long divRes = dec;
    long remainder;
    ArrayList<Long> raw = new ArrayList<>();
    while (divRes != 0) {
        remainder = divRes % 16;
        divRes = divRes / 16;
        raw.add(remainder);
    }
    Collections.reverse(raw);
    for (Long codeIndex : raw) {
        result.append(HEX_CODES[Math.toIntExact(codeIndex)]);
    }
    return result.toString();
}
 
Thema: 

Rechner dez in Hex umwandeln

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben