conversion hexa -> Decimal - C++ - Programmation
Marsh Posté le 28-02-2003 à 17:23:34
ben dja tu tronques ta chaine. non ?
bon apres ... t'as pas d'idee ?
Marsh Posté le 28-02-2003 à 17:33:43
Ouep je me retrouves avec 3 CString avec 000010 dans la 1er 002000 dans la seconde et FFFFFE dans la 3ieme. Maitenant je veux transformer le contenu de ces chaines en leur valeur decimale mais c vrai que je vois pas du tout, mdr c'est si simple que ça ?? j'ai regarder dans les class members de CString et je vois pas trop si ya une fonction que je peux utiliser, peut etre la fonction FORMAT, mais bon pour repondre a ta question .... non j'ai pas d'idée :'(.
Marsh Posté le 28-02-2003 à 17:48:57
tu peux appliquer le schema de Horner...mais il y a peut etre quelque chose dans la classe String pour faire ca...
Marsh Posté le 28-02-2003 à 17:59:39
je penses qu'il vas falloir que je developpe dans ma metode toute une procedure pour pouvoir convertir ca mais comme tu dis djok_fb ya surement une methode qui permet cela directement et justement c'est ce que je voudrais savoir, donc si quelqu'un voit qui n'hesite pas a me faire signe ca serait sympa de sa part. Encore merci.
Marsh Posté le 28-02-2003 à 18:13:16
Citation : |
Test different de ce que je devrais avoir ( 16 ) :'(
Marsh Posté le 28-02-2003 à 22:29:55
La méthode "universelle" consiste à multiplier chaque valeur de la base par la puissance de l'indice.
abcdef en base 16 se calcule par f * (16 à la puiss zéro) + e * (16 à la puiss 1) + d * (16 à la puiss 2) + ... + a * (16 à la puissance 5).
Si c'était du binaire (ou décimal), ça marche pareil (par définition de la base).
Si le digit de gauche est >= 8, négatif si signé, faut voir si besoin de complémenter (il me semble !!!).
Marsh Posté le 28-02-2003 à 23:43:19
CARBON_14 a écrit : La méthode "universelle" consiste à multiplier chaque valeur de la base par la puissance de l'indice. |
ca c'est le schema de Horner mais développer...
si ton chiffre s'ecrit: abcdefg en base x pour le convertir en base 10
le calcul se fait comme suit:
(( ( ( ((a*x) + b)*x) + c)*x) + d)*x ....+g
et ainsi de suite du coup quand tu developpe le tout, ca donne ce qu'a dit CARBON_14
Marsh Posté le 01-03-2003 à 00:13:11
Je dis peut-être une connerie, mais ça marche pas ça ?
Code :
|
Marsh Posté le 01-03-2003 à 00:45:46
ok je vous remerci pour cette aide, bon je vais devoir coder tous ca ca vas etre un peu plus compliquer que d'avoir un fonction directe. D'ailleurs si quelqu'un connait une fonction qui fait ca directe , celle de Harkonnen apparament marche pas a moins que ce soit moi qui est mal codé. Encore un merci a vous.
Marsh Posté le 01-03-2003 à 00:52:08
leneuf22 je te remerci grandement en effet tas soluce marche nickel, désolé j'avais commencer a taper mon post precedent avant que tu mettes le tiens donc j'avais pas encore tas soluce. Un grand merci a vous tous de m'avoir si gentillement aidé.
Marsh Posté le 23-03-2003 à 02:29:26
On peut grouper la lecture:
Code :
|
Marsh Posté le 28-02-2003 à 17:08:42
Bonjour tous le monde !!
J'ai un petit gros probleme que j'arrive pas a voir, ca doit etre surement simple mais je dois avouer que je bloque. Alors voila les faits. En faite j'ai une chaine de caractere de 18 chiffres hexadecimaux dont les 6 premiers chiffres correspondent a une valeur, les 6 autres egalement et les derniers 6 aussi donc pour resumer :
ex : 000010002000FFFFFE
| A | B | C
A: hexadecimale en complement binaire, dans l'exemple la valeur 16 décimale
B: hexadecimale en complement binaire, dans l'exemple la valeur 8096 décimale
C: hexadecimale en complement binaire, dans l'exemple la valeur -2 décimale.
Je souhaites obtenir 3 variables a partir de ma chaine de caractere de depart dont les contenus correspondent a la valeur decimale de A,B et C. Donc A=16, B=8096 et C=-2.
Si quelqu'un pouvait m'aider ca serait bien aimable de ca part car je vois pas tellement comment faire :'(
Message édité par jarod2000 le 28-02-2003 à 17:11:29