Demander que mon programme reconnaise les chiffres avec et sans virgule ### (SVP
Sojojo
Messages postés41Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 7 septembre 2005
-
31 mai 2005 à 11:18
Sojojo
Messages postés41Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 7 septembre 2005
-
31 mai 2005 à 16:33
J'aimerais savoir s'il est possible de faire reconnaitre au programme les chiffres avec et sans virgules.
Car, si j'ai un chiffre sas virgules, je n'est pas besoin d'effectué quelques opérations et s'il y a des virgules, je dois le transformer en décimal sans virgule.
J'aimerais aussi savoir qu'est_ce que c'est réellement la norme IEEE (le truc qui permet de calculer les nombres a virgules).
Quelqu'un peut me dire aussi si se que j'ai fait est correcte pour transformer les nombres a virgules?
Ce que j'ai fait pour les chiffres a virgule c'est:
trouver l'exposant, le signe et la mantisse (tout en binaire) et je retransforme en decimal.
A voir également:
Demander que mon programme reconnaise les chiffres avec et sans virgule ### (SVP
contrairement a ce que j'avais dis à l'époque, il y a des erreurs dans
le calcul des derniers bits, bien sûr c'est toujours Vb qui a raison,
ceci est dû aux erreurs de calculs et au tronquage du Double.
cs_dragon
Messages postés2336Date d'inscriptionsamedi 14 juillet 2001StatutMembreDernière intervention 5 mai 20096 31 mai 2005 à 12:34
moi j'ai souvent fait
if int(chiffre) = chiffre then
pas de virgule
else
virgule présente
end if
-------------------------------------------------
Dragon alias aussi Waxime mais bon, pas le gout de refaire un nouveau profil lol
-------------------------------------------------
Sojojo
Messages postés41Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 7 septembre 2005 31 mai 2005 à 13:02
moi la je devient un peu perdu
en plus je crois ke j'ai réussi a faire quelque chose mais, je n'arrive pas a modifer les valeurs des paramètres de mon variateur (pasque c ca que je dois faire....).
mon problème c les chiffres float paske je sais pas trop comment ca marche, j'ai réussi a avoir pour la valeur 50.5 -> 1112067276 mais apèrs mon variateur veut pas le prendre et pourtant normalemen c se que je dois avoir
après si mon variaeur veut pas changer la valeur ca ne relève plus du langage vb ...
o pire si quelqu'un peuuuut m'aiiderr
merci
Sojojo
Messages postés41Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 7 septembre 2005 31 mai 2005 à 14:06
1112067276, c'est la valeur que je trouve avec la norme IEEE.
j'explique:
je rentre la valeur 50.5
je calcule le signe l'exposant et la mantisse.
tout ca c sur des bits précis
bit(31) 0 >signe (signe positif)bit(30) à bit(23) 10000100 >exposant (je suis pas sur ke ce soit pour la valeur 50.5)bit(22) à bit(0) 100000....> mantisse
ensuite je fait
for i = 31 to 0
nombre = nombre + Bit(i)*2^i
et la je trouve 1112067276
Il est possible ke ce que je fasse ne tienne pas du tout la route, pour moi en faisant ca je suis retourné a une valeur décimale sans virgule correspondant a 50.5
Sojojo
Messages postés41Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 7 septembre 2005 31 mai 2005 à 14:57
ouais ben la on est entièrement d'accord je trouve pareil donc après je le retransforme en decimal avec :
for i = 31 to 0
nombre = nombre + Bit(i)*2^i
et nombre = 1112067276
ca c juste ou c totalement faut.???
parce que si ca c'est bon ca veu dire que mon envoie de telegramme au variateur n'est pas bon mais pourtant il fonctionne avec les variable sans virgules ... Bizzzzard ...
Sojojo
Messages postés41Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 7 septembre 2005 31 mai 2005 à 15:38
je suis d'accord avec toi c ce que je trouve ausii
Bit(30) = 1
Bit(25) = 1
Bit(22) = 1
Bit(19) = 1
Bit(17) = 1
et tous les autres sont a zéro et je suis sur 32 bits
Sojojo
Messages postés41Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention 7 septembre 2005 31 mai 2005 à 16:11
ben je veu bien mais je declare :
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
après option explicit
et je mets
Dim V As Single
Dim B() As Byte
' valeur d'entrée dans text1.text
V = CSng(Text1.Text)
ReDim B(3)
CopyMemory B(0), V, 4
a l'endroit ou je veu dans ma feuille
mais j'ai un message d'erreur : "erreur de compilation : fonction procédure ou sub non defini" et j'ai CopyMemory qui et surligné