Binaire

GlanduSchmoldu Messages postés 199 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 27 octobre 2006 - 8 juin 2004 à 15:16
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 17 juin 2004 à 15:12
Bonjour voilà je voudrais connaître le contenu binaire d'une variable (Integer, Double, String ...). Mais vraiment ce qui est enregistrer dans la mémoire, donc pas une fonction de calcul (du genre If Bit(i) = 1 then decimal = decimal + 2^i) ni de conversion ASCII.

Voilà si qqun sait m'aider ...

9 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
8 juin 2004 à 20:31
Salut, je ne sais pas si ça peut t'être utile mais j'ai posté un truc ds le genre :

http://www.vbfrance.com/ajoutcode.aspx?ID=23026

Vois si ça te convient. Sinon donne ton avis dessus, ça m'aiderait.

Cordialement

CanisLupus
0
GlanduSchmoldu Messages postés 199 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 27 octobre 2006 1
9 juin 2004 à 18:13
A oui c'est très bien ça je savais pas comment ça marchait, vachement bien, bravo. Mais du coup je me demande ce qui ya dans d'autres types de variables genre Long, Booleen (mias là ça doit pas etre bien compliqué), ou surtout String et Variant. Mais ça sort peut etre du sujet.

Sinon en fait mon problème c'est que je voulais faire du hashage MD5 et je vois mal comment stocker des bits, à part dans des chaines mais c'est lourd et lent.

Enfin quoiquilensoit bravo c'est chouette de montrer un peu le fonctionement interne de VB.
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
9 juin 2004 à 20:09
Salut, GlanduSchmoldu
Merci pour ton commentaire, si un jour g du temps, et si personne ne la déjà fait, je ferai un multi-convertisseur.
Pour les caractères, c facile, par ex un A à la valeur 65 en dec, 42 en Hex et 0100 0001 en binaire.

Le problème, c que ce que g fait c la représentation brute des variables float (double et single). En mémoire, faudrait que je m'y penche sérieusement, il y a des histoires d'octets forts et faibles, etc ..... et je ne sais pas comment c rangé tout ça.

Sinon, j'avais aussi mis un source ici qui permet de calculer un sceau sur un fichier. C une traduction d'un source C basé sur RIPEMD 160 (considéré comme une amélioration du MD5) :
http://www.vbfrance.com/code.aspx?ID=21566

Bonne prog

Cordialement

CanisLupus
0
GlanduSchmoldu Messages postés 199 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 27 octobre 2006 1
11 juin 2004 à 15:27
Alors je pige pas le coup de l'addition. Je veux dire on additionne 2 Long et puis ensiute on enleve des trucs jusqu'à ce que le résultat rentre dans un Long, d'accord, mais je comprend pas bien ce qu'on obtient à la fin. C'est pas vraiment l'addition puisqu'on a enlevé des trucs non ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
11 juin 2004 à 16:33
<GlanduSchmoldu>

Je pense que tu veux parler du prog de calcul de sceau.

Le prob vient de la différence entre les types de données du C et de VB.

Ds le prog C d'origine, les variables sont en Unsigned Long (valeurs de 0 à 4 294 967 295) et en VB le Long est signé (de -2 147 483 648 à +2 147 483 647). donc, prob de dépassement de capacité. Je suis donc passé par des variables Double pour éviter les prob et seul le résultat final est reconverti en Long.

Je peux te garantir que le résultat est identique en VB qu'en C. G testé.

En dehors de ça, toutes les autres manip d'octets ou de bits sont une application de l'algorithme RIPEMD 160.

Je crois que g mis l'adresse où tu peux voir la doc.

Voila.

Cordialement

CanisLupus
0
GlanduSchmoldu Messages postés 199 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 27 octobre 2006 1
11 juin 2004 à 19:58
Euh ouias j'avais compris mais ce qui me gène c'est que comment ça se fait qu'en enlevant des 2^32 en boucle ça ne change pas le résultat final ?
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
11 juin 2004 à 20:48
En Long signé , le 2^32 c le signe : bit à 1 si négatif à 0 si positif.

Cordialement

CanisLupus
0
GlanduSchmoldu Messages postés 199 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 27 octobre 2006 1
17 juin 2004 à 14:19
A oui je crois que je pige. Désolé pour le temps de réaction (le bac est l'oeuvre du Mal).
Détail amusant à propos de ta source : Timer.Interval a l'air de se comporter comme un Unsigned Integer. Existerait il des machin.truc en Unsigned Long ?
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
17 juin 2004 à 15:12
Détail amusant en effet, c d'ailleurs pourquoi je m'étonne qu'en VB on ne puisse pas déclarer une variable de type unsigned comme en C.

Cordialement

CanisLupus
0
Rejoignez-nous