Aide de traduction d'un vbs à java

Fermé
bifaka - 12 déc. 2005 à 07:07
 bifaka - 12 déc. 2005 à 16:23
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
A voir également:

2 réponses

Utilisateur anonyme
12 déc. 2005 à 09:00
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
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