Aide de traduction d'un vbs à java

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. 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
    1. 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