format en héxadécimal des nombres réels

Voir le sujet précédent Voir le sujet suivant Aller en bas

format en héxadécimal des nombres réels

Message par sandro le Mar 17 Avr - 10:26

Bonjour,
suite à quelques essais avec le débugueur de VTI, j'ai réussit à trouver sous quel format étaient stoké les nombres réels (testé que avec une rom de TI82stats.fr)
en fait, sur les 15 octés, seuls 9 contiennent réellement le nombre, le reste servant propablement à la VAT (Variables Allocation Table : endroit de la mémoire ou sont listé totes les variables avec leur caractéristiques esssentielles : nom, type, taille, emplacement dans la mémoire, ...)

Bref, voici le format que j'ai trouvé avec mes tests :
SPCCCCCCC (chaque lettre représentant un octé)

avec S le signe du nombre : 0 si positif ou nul ; 80h si négatif (c'est à 128d)
P la puissance de 10 : le nombre constitué des chiffres significatifs (les C) est multiplié par 10d^(Ph-80h)
enfin, les chiffres sont utilisé comme s'il s'agissaite de nombres à 2 chiffres décimaux : par example 20d sera écrit 20h (ce qui laisse à penser que la TI éffectue directement les calculs en base 10 et ne passe pas par l'héxadécimal) : on a donc avec les 7 C un nombre en base 10 de 14 chiffres. le nombre ainsi formé doit être considéré comme étant une nombre avec un chiffre non nul avant la virgule et 13 autres derière.

On retrouve donc un peu la notation scientifique.


Pour finir, quelques examples pour illustrer/clarifier:
a)
00h 80h 00h 00h 00h 00h 00h 00h 00h
le 00h du début indique que le nombre est positif ou nul
le 80h indique qu'il faudra multiplier le tout pat 10d^(80h-80h)=1
le 00h 00h 00h 00h 00h 00h 00h indique que les chiffres significatifs sont 0.0 00 00 00 00 00 00
le nombre vaut donc +0.0000000000000*1=0

b)
80h 82h 12h 34h 56h 78h 90h 12h 34h
le 80h du début indique que le nombre strictement négatif
le 82h indique qu'il faudra multiplier le tout pat 10d^(82h-80h)=10d^(2h)=10d^(2d)=100 (car 2h=2d)
le 12h 34h 56h 78h 90h 12h 34h indique que les chiffres significatifs sont 1.2 34 56 78 90 12 34
le nombre vaut donc -1.2345678901234*100=-123.45678901234


Remarques1 : si un des chiffres C contient un chiffre héxadécimal strictement supérieur à 9 (ce qu'on ne peut normalement pas optenir en basic), alors le nombre affichera des caractères bizards ; si le premier octé des C vaut 00h, alors le nombre vaut forcément 0 ; si le premier octé des C vaut 0Nh avec N un chiffre héxadécimal inférieur ou égal à 9, alors on optient un nombre normal, sauf que avant l'aplication de la puissance de 10, le chiffre avant la virgule est le 0

Remarque2 : ce mode de stoquage à pour inconvéniant d'énormes pertes de capacitées de stoquage :
-la puissance de 10 pourait aller de -128 à 127 au lieux de -99 à 99
-le nombre de chiffres significatifs pourrait être de 16 voir de 18 si on ne réservait qu'un bit au signe (vu qu'il n'i a que 2 états, ça suffit) et en attribuant le reste aux chiffres significatifs
-on pourrait éalement avoir 16 chiffres significatifs et une puissance de 10 allant de -16384 à 16383

Sandro

PS : quand je met d derière un nombre, c'est pour indiquer qu'il est en base 10, et quand je meth, c'est que c'est en base héxadécimale (16)

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: format en héxadécimal des nombres réels

Message par kindermoumoute le Mar 17 Avr - 11:32

Ce sont des floats de 9 octets : lien.

Après pourrait tu nous expliquer les complexes qui font 27 octets ? Content

kindermoumoute
Or 4
Or 4

Sexe : Masculin
Age : 22
Messages : 797
Date d'inscription : 07/10/2010
Points Forum : 21
Points Concours : 1
Langages :
  • - TI-Basic Z80
  • - Axe Parser
Calculatrices :
  • - TI-83+

TI-83+


Revenir en haut Aller en bas

Re: format en héxadécimal des nombres réels

Message par sandro le Mar 17 Avr - 11:53

ça, ça risque d'être plus compliqué : quand j'enregistre un complexe dans une variable lettre, toutes les lettres disparaissent de la liste des variables du débugueur, donc je ne sais plus où chercher ma variable.

Sandro

PS : c'était surtout pour trouver si pour rand c'est du modulo 10^14 ou autre chose

_________________
mort à l'inutile, place à la mémoire libre et aux programmes!

sandro
Or 4
Or 4

Sexe : Masculin
Age : 20
Messages : 806
Date d'inscription : 01/07/2011
Etudes : T°S SVT spé maths
Points Forum : 29
Points Concours : 5
Langages :
  • - TI-Basic Z80
  • - ASM TI-82 Stats / TI-83
  • - ASM TI-83+ / TI-84+
  • - Axe Parser
Calculatrices :
  • - TI-82 Stats.fr
  • - TI-84+ SE
  • - TI-89
  • - Casio Collège

TI-84+ SE


Revenir en haut Aller en bas

Re: format en héxadécimal des nombres réels

Message par Contenu sponsorisé Aujourd'hui à 18:12


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum