WikiPedia est ton amie : http://fr.wikipedia.org/wiki/Ing%C3%A9nierie_inverse
Edit : Moi je ne suis pas convaincu par le fait qu'analyser les fichiers ICFG soit de l'Ingénierie Inverse au sens ou l'entend Nevrax...
Karto marche plus, cherche kkchose similaire
Re: Karto marche plus, cherche kkchose similaire
Etan Chizuo Ka-chen, surnomée Etchizka ou Etchi,
humble mage cartographe au service du peuple Zoraï, membre du Clan Sckinook.
(Ancienne Da-Kwaï du Temple des Masques et Intendante des Cercles Zoraï)
[ Le Game Lore en PDF ₪ Les Chroniques d'Atys en PDF ]
Re: Karto marche plus, cherche kkchose similaire
Un ti post pour tout ceux qui luttent avec la conversion hexa ==> Float, j'ai trouvé et fait un ti algo de conversion en C. Langage utilisé a seul but de tester mes algos, je sais qu'il y a beaucoup plus simple de faire en C 
Il vous suffit donc de le comprendre et de le réimplementer dans votre langage préféré
Je pense avoir suffisement détaillé l'algo et ne pas l'avoir fait comme un porc. Si tout fois vous avez du mal a en saisir les subtilité, je pourrais faire un ti explicatif 
La fonction s'appelle avec un long qui contient la représentation binaire du flottant et retourne le flottant.
Edit : du code en bonus passage du code hexa lu en code binaire
Il suffit donc pour avoir le float correspondant a la chaine lue de lancer par exemple :

Il vous suffit donc de le comprendre et de le réimplementer dans votre langage préféré

Code: Select all
float binaryToFloat(long binary)
{
/* s represents the sign, e the exponent and m the mantissa */
char s = binary >> 31;
unsigned char e = ((binary & 0x7fffffff) >> 23) - 127;
long m = (binary & 0x007fffff) | (1 << 23);
/* deleting non significant bits */
while (!(m & 1))
m>>=1;
/* Finding the right coma position */
char comaPos = 31 - e;
long tmp = 0x80000000;
while (!(m & tmp))
{
tmp>>=1;
comaPos--;
}
/* conversion */
float f = 0.;
char i;
for(i = 0; i < 32; i++)
if(m & (1 << (i)))
f += pow(2., (i-comaPos));
s ? f*=-1 : true;
return f;
}

La fonction s'appelle avec un long qui contient la représentation binaire du flottant et retourne le flottant.
Edit : du code en bonus passage du code hexa lu en code binaire
Code: Select all
long hexToLong(char * hex)
{
long binary = 0;
char i;
/* Little endian conversion */
char dec[8] = {4, 0, 12, 8, 20, 16, 28, 24};
for(i = 0; i < 8; i++)
(*hex >= '0' && *hex <= '9') ? binary |= (long)(*hex++ - '0') << dec[i] : binary |= (long)(*hex++ - 'A' + 10) << dec[i];
return binary;
}
Code: Select all
binaryToFloat(hexToLong("D47A7645"));
Last edited by cyrille5 on Fri Aug 25, 2006 9:25 pm, edited 1 time in total.
Amina, jeune et jolie trykette, un peu peste et fusilière folle.
Les tryker, c'est beau, le reste, bah c'est moche !
Les tryker, c'est beau, le reste, bah c'est moche !