Aide de traduction d'un vbs à java

bifaka -  
 bifaka -
salut à vous,
qui pourra m'aider à traduire ce code en code Java.

Public Function HexToDec(ByVal Hex As String) As Long
Dim n As Long
Dim i As Integer
For i = 1 To Len(Hex)
Dim CharHex As String
CharHex = UCase(Mid(Hex, i, 1))
If Asc(CharHex) >= 65 Then
n = n + (Asc(CharHex) - 55) * (16 ^ (-i + Len(Hex)))
Else
n = n + CInt(CharHex) * (16 ^ (-i + Len(Hex)))
End If
Next i
HexToDec = n
End Function
meci d'avance

2 réponses

  1. Utilisateur anonyme
     
    public class Converter {
    
    	public static long hexToDec(String hex) {
    		long n = 0;
    		for (int i = 0; i < hex.length(); i++) {
    			char charHex = hex.charAt(i);
    			int exponent = hex.length() - (i + 1);
    			long mult = (long)Math.pow(16, exponent);
    			if (charHex >= 65) {
    				n += (charHex - 55) * mult;
    			} else {
    				n += (charHex-48) * mult;
    			}	
    		}
    		return n;
    	}
    
    	public static void main(String[] args) {
    		System.out.println(Converter.hexToDec("AAA"));
    	}
    }
    


    ;-)
    HackTrack
    0
  2. bifaka
     
    merci beaucoup HackTrack ca fontionne ce que tu m'a donné. J'ai essayé d'adopter ce que tu m'a donné à l'énoncé de mon problème mais ca me donne les fautes que je n'arrive pas à corrigé. Peux tu aussi commenter ce que tuas fait? parexemple pourquoi utiluse tu des chiffres comme 48?

    import java.io.*;

    public class Converter {

    public static long hexToDec() {
    char []zahl = {'0','1','2','3','4','5','6','7','8','9', 'a', 'b', 'c','d', 'e', 'f', '\0' };
    String hex="00000000" ;
    long n = 0;

    //Einlesen hexazahl
    //do{
    System.out.print("Bitte geben ein hexazahl ein: ");
    hex =(char)System.in.read();

    //überprüfen ob der eingelesene Zahl richtig ist
    //wenn nicht meldet es eni Fehler

    // if (!(hex >= '0' && hex <= '9') && !(hex >= 'a' && hex <= 'f'))
    // {
    // System.out.println ("invalide character wurde detectiert");

    //}//Ende if

    // }while(!(hex >= '0' &&hex<= '9') && !(hex >= 'a' && hex <= 'f'));

    for (int i = 0; i < hex.length(); i++) {
    char charHex = hex.charAt(i);
    int exponent = hex.length() - (i + 1);
    long mult = (long)Math.pow(16, exponent);
    if (charHex >= 65) {
    n += (charHex - 55) * mult;
    } else {
    n += (charHex-48) * mult;
    }
    }
    return n;
    }

    public static void main(String[] args) {
    System.out.println(Converter.hexToDec());
    }
    }
    0