[PDF] Unité A6: Conversions Unité A6: Conversions





Previous PDF Next PDF



Tableau de conversion des heures horaires en heures décimales

Décimales. Minutes. Décimales. Minutes. Décimales. Minutes. Décimales. Minutes. 1.48. 89.00. 0.99. 59.50. 0.51. 30.50. 0.01. 0.50. 1.49. 89.50. 1.00. 60.00.



MESURE DU TEMPS - HEURE MINUTE et SECONDE

Durée décimale : Conversion d'une durée en heures minutes et secondes en durée décimale : Exemple : Convertir 2 h 18 min en écriture décimale. Méthode 1 : En 



Unité A6: Conversions Unité A6: Conversions

assembleur les conversions usuelles binaire décimal et décimal binaire. dont il dispose et du temps d'exécution de chacune. Unité A6: Conversions ...



Conversions analogique - numérique et numérique - analogique.

Signal numérique : signal échantillonné et quantifié discret en temps et en amplitude. Conceptuellement



Conversion Analogique Numérique

Pour convertir un nombre décimal N en un nombre en base b il faut diviser le nombre On désire mesurer la température dans un local entre [-10 ; +40].



Conversion binaire-hexadécimal - Cours délectr

03?/04?/2019 Dans un premier temps je vais vous donner le tableau de toutes les ... Pour retrouver le tableau il faut d'abord convertir en décimal puis ...



Electronique Numérique Systèmes combinatoires

16?/09?/2010 Le but de ce cours est dans un premier temps de présenter les systèmes ... Exemple 2- 3 : Conversion décimal-binaire avec représentation de ...



La fonction Conversion Analogique – Numérique

du temps codé en binaire naturel ou en binaire codé décimal. Suivant le modèle de convertisseur analogique – numérique (C.A.N.) utilisé le nombre « N » a 



LE BINAIRE ET LE CODAGE DES INFORMATIONS

Une méthode de conversion consiste à décomposer le nombre décimal en une somme de puissances de bits en même temps : c'est une liaison parallèle.



LOGIQUE COMBINATOIRE ET SEQUENTIELLE

01?/09?/2020 Pour convertir un nombre décimal au binaire il y a deux méthodes: ... asynchrone avec une troisième entrée pour le temps (t) (Horloge H).



[PDF] MESURE DU TEMPS - HEURE MINUTE et SECONDE

Durée décimale : Conversion d'une durée décimale en heures minutes et secondes : Exemple 1 : Convertir 225 h en heures minutes et éventuellement secondes



[PDF] tableau-minutes-decimalespdf

Tableau de conversion des heures horaires en heures décimales Décimales Minutes Décimales Minutes Décimales Minutes Décimales Minutes



[PDF] GM Unités de temps

Dossier de rattrapage 9CO – GM Unités de temps – version 2021 Convertir un nombre décimal d'heures en heures minutes et secondes



[PDF] I La mesure du temps II Conversions de temps 1 Convertir des

II Conversions de temps 1 Convertir des heures en minutes Temps en h 1 15 Temps en min 60 Pour convertir des heures en minutes on multiplie par 60



[PDF] heures décimales - Mathsenligne

Convertir toutes les durées de l'énoncé en minutes b Exprimer en heures et minutes les temps des quatre concurrents dont il est question dans cette course



[PDF] CONVERTIR LES UNITES DE TEMPS - qcmtest

Pour convertir des heures en minutes il faut multiplier le nombre d'heure par 60 (soit le nombre de minutes contenu dans une heure)



[PDF] Unités de temps : Calculs et conversions Il existe également :

III – CONVERSIONS 1) Conversion d'une durée en minutes en nombre décimal d'heures et inversement On peut établir un tableau de proportionnalité entre une 



[PDF] 4 Convertir des durées

Convertir des durées : Convertir c'est changer d'unité c'est trouver l'équivalent dans une autre unité Pour cela il faut connaître les correspondances 



[PDF] PLANCHE-MATH14- Calcul des durées I Les principales corres Les

La règle qui suit permet la conversion en heure décimale REGLE : Pour convertir un temps en heure décimale il faut Pour convertir un temps en heure décimale 



[PDF] Pour calculer une durée ou un horaire il ne

Pour convertir des minutes en heures on divise par 60 On obtient fréquemment des nombres décimaux Dans la vie courante on évite d'utiliser cette unité mais 

  • Comment convertir le temps en décimal ?

    Pour convertir le temps en format décimal, il faut diviser les minutes par 60. Les décimales sont arrondies, car les heures décimales ne comportent que deux décimales.
  • Comment convertir 1h15 en heure ?

    1) 1h15min = 1h+15 min. On transforme 15 min en heures sachant que dans une 1h il y a 60min, par conséquent 15 min correspond à 15/60h soit 0,25h. 1h15min s'écrit donc 1,25h en décimal.
  • 1 minute (min) = 60 secondes (s) 1 heure (h) = 60 minutes (min) = 60 × 60 (s) soit 3 600 s. 1 jour (j) = 24 heures = 24 × 60 soit 1 440 min.

1©Pierre Marchand, 2001210

Objectifs :

À la fin de cette unité, vous saurez comment on peut programmer en assembleur les conversions usuelles binaire décimal et décimal binaire. Pour y parvenir, vous devrez atteindre les objectifs suivants : -décrire les principaux algorithmes de conversion entre le

décimal et le binaire.Unité A6: Conversions©Pierre Marchand, 2001211On effectue souvent en assembleur les conversions élémentaires de

binaire à décimal et vice-versa, parce que ces fonctions sont appelées très souvent et ont donc intérêt à être performantes. La conversion entre le décimal et le binaire s'effectue habituellement comme suit : Décimal (BCD) à binaire (voir supplément au volume, section 3.3.1) :

R = d + 10 ´ R

Pour la conversion binaire à décimal, trois méthodes sont fréquem- ment utilisées : • R = b + 2 ´ R en arithmétique BCD • Divisions répétées par 10 -> séquence de restes • Tables Celle qu'on choisit dépend du processeur utilisé, du jeu d'instructions dont il dispose, et du temps d'exécution de chacune.Unité A6: Conversions

2©Pierre Marchand, 2001212

9.1 Conversion décimal à binaire

Effectuons la conversion d'une chaîne de caractères décimaux représentant un nombre positif vers un nombre binaire de 32 bits non signé. On utilise l'algorithme d + 10 x R.

Exemple sur 16 bits :Unité A6: Conversions

1 2 3 4

10R = 0000

01 + 000A x 0000 = 0001

02 + 000A x 0001 = 000C

03 + 000A x 000C = 007B

04 + 000A x 007B = 04D2Nombre à convertir en BCD©Pierre Marchand, 20012139.1 Conversion décimal à binaire

dec2Long proc decString:LPSTR movesi, decString xoreax, eax; résultat = 0 While:movzxebx, byte ptr[esi]; while (*decString++) incesi testbl, bl; terminé si nul jefin subbl, '0'; conversion ASCII-binaire imuleax, 10; résultat *= 10 addeax, ebx; résultat += digit jmpWhile fin:ret; résultat dans eax dec2Long endpUnité A6: Conversions

3©Pierre Marchand, 20012149.2 Conversion binaire à décimal

1 e méthode : divisions par 10

Exemple sur 16 bits :

ABCD / 000A= 112E reste 01

112E / 000A= 01B7 reste 08

01B7 / 000A= 002B reste 09

002B / 000A= 0004 reste 03

0004 / 000A= 0000 reste 04

Résultat :04 03 09 08 01 en BCD,

34 33 39 38 31 en ASCII,

ou 43981

10Unité A6: Conversions©Pierre Marchand, 20012159.2 Conversion binaire à décimal

1 e méthode : divisions par 10 Stratégie : comme le résultat est la séquence des restes, mais inversée, nous écrirons ces restes vers la gauche à partir du 11e octet dans une variable Temp de 12 octets initialisée à 0. Nous aurons ainsi automatiquement notre caractère de fin de chaîne. Ainsi, dans l'exemple précédent, on aurait :Unité A6: Conversions Temp : 00 00 00 00 00 00 34 33 39 38 31 00Pointeur à la fin

des divisionsPointeur initialIl nous restera à incrémenter le pointeur final et à faire un strcopy

vers la destination.

4©Pierre Marchand, 2001216

9.2 Conversion binaire à décimal

1 e méthode : divisions par 10 tempdb12 dup(0); espace pour restes = 12 zéros bin2String proc n:DWORD, String:LPSTR moveax, n; nombre à convertir leaesi, temp addesi, 10; pointer sur fin de temp movecx,10; 10 pour la division divis:movedx, 0; eax = quotient précédent divecx; diviser par 10 adddl, '0 '; convertir reste en ASCII mov[esi], dl; stocker dans temp

decesi; écrire le suivant à gaucheUnité A6: Conversions©Pierre Marchand, 20012179.2 Conversion binaire à décimal

1 e méthode : divisions par 10 testeax, eax jnedivis; tant que quotient != 0 ; copier temp dans destination incesi; pointer sur dernier reste movedi, String; adresse destination copy:lodsb; reste suivant stosb testal, al; tant que reste ¹ 0 jnecopy ret bin2String endpUnité A6: Conversions

5©Pierre Marchand, 2001218

9.2 Conversion binaire à décimal

2 e méthode : R = b + 2 * R

Exemple sur 8 bits :Unité A6: Conversions

1 0 1 1 1 1 0 1R = 00 00

1 + 00 00 + 00 00 = 00 01

0 + 00 01 + 00 01 = 00 02

1 + 00 02 + 00 02 = 00 05

1 + 00 05 + 00 05 = 00 11

1 + 00 11 + 00 11 = 00 23

1 + 00 23 + 00 23 = 00 47

0 + 00 47 + 00 47 = 00 94

1 + 00 94 + 00 94 = 01 89

Addition BCD

Sur 2 octets©Pierre Marchand, 20012199.2 Conversion binaire à décimal 2 e méthode : R = b + 2 * R

Exemple sur 8 bits :

Il faut ensuite décompacter les octets pour les convertir en ASCII.

01 89 -> 00 01 08 09 -> 30 31 38 39 00

Pour décompacter, on met un octet du résultat dans al et dans ah : ax = 89 89 On fait ensuite le AND de ax avec 0xF00F : and ax,0xF00F ax = 80 09 Puis on décale ah de 4 bits vers la droite : shr ah, 4 ax = 08 09 Finalement, on ajoute 0x30 à chacun : add eax,0x3030 ax = 38 39Unité A6: Conversions

6©Pierre Marchand, 2001220

9.2 Conversion binaire à décimal

2 e méthode : R = b + 2 * R Comme un nombre de 32 bits peut aller jusqu'à 4 294 967 296 qui a

10 chiffres, il nous faudra faire nos additions BCD sur 5 octets (un

octet contient 2 chiffres en BCD compacté.Unité A6: Conversions©Pierre Marchand, 20012219.2 Conversion binaire à décimal

2 e méthode : R = b + 2 * R tempdb5 dup(0) bin2decString proc n:DWORD, decString:LPSTR movebx, n movedx, 32; 32 bits à traiter leaedi, temp decal:rclebx, 1; mettre le msb dans CF movesi, 4 movecx, 5Unité A6: Conversions

7©Pierre Marchand, 20012229.2 Conversion binaire à décimal

2 e méthode : R = b + 2 * R abcd:moval, byte ptr [edi+esi|; addition bcd sur 5 octets adcal, al; b + 2 * R daa; ajustement BCD movbyte ptr [edi+esi], al; résultat dans temp decesi dececx jneabcd; fin abcd decedx jnedecal; fin décal movecx, 5

movesi, strUnité A6: Conversions©Pierre Marchand, 20012239.2 Conversion binaire à décimal

2 e méthode : R = b + 2 * R copy:moval, [edi]; copier dans destination et ; convertir le BCD compacté movah, al; en BCD non compacté andax, 0xF00F; masquer lsb et msb shrah, 4; décaler msb en place addax, 0x3030; convertir en ASCII xchgah, al; little endian movword ptr [esi], ax; stocker deux car inc edi; incrémenter source addesi, 2; incrémenter destination dececx jnecopy movbyte ptr[edi], 0; car de fin de chaîne retUnité A6: Conversions

8©Pierre Marchand, 2001224

9.2 Conversion binaire à décimal

3 e méthode : à l'aide d'une table

Soit n le nombre à convertir.

Le résultat r est un nombre de 10 chiffres ASCII qu'on initialise à 0 : r = '0', '0', '0', '0', '0', '0', '0 , '0', '0', '0', 0 Tant que n >= 1000000000,n = n - 1000000000,r[0] = r[0] + 1 Tant que n >= 100000000,n = n - 10000000,r[1] = r[1] + 1 Tant que n >= 10000000,n = n - 10000000,r[2] = r[2] + 1 Tant que n >= 1000000,n = n - 1000000,r[3] = r[3] + 1 Tant que n >= 100000,n = n - 100000, r[4] = r[4] + 1 Tant que n >= 10000, n = n - 10000, r[5] = r[5] + 1

Tant que n >= 1000, n = n - 1000, r[6] = r[6] + 1

Tant que n >= 100, n = n - 100, r[7] = r[7] + 1

Tant que n >= 10,n = n - 10,r[8] = r[8] + 1

r[9] = nUnité A6: Conversions©Pierre Marchand, 20012259.2 Conversion binaire à décimal 3 e méthode : à l'aide d'une table Table dd1000000000, 100000000, 10000000, 1000000, 100000, dd10000, 1000, 100, 10, 1 bin2decString proc n:DWORD, decString:LPSTR moveax, n leaesi, Table xorebx, ebx movedi, decString movecx, 10; 10 nombres dans Table digit: movbyte ptr [edi+ebx], '0'; résultat = ' 0 ' movedx, dword ptr [esi+ebx*4]; Table[i] comp:cmpeax, edx; peut-on soustraire? jbsuivUnité A6: Conversions

9©Pierre Marchand, 2001226

9.2 Conversion binaire à décimal

3 e méthode : à l'aide d'une table subeax. edx; soustraire Table[i] addbyte ptr [edi+ebx], 1; incrémenter résultat jmpcomp; tant que eax > Table[i] suiv:incebx; élément suivant loopdigit movbyte ptr [edi+ebx], 0; car de fin de chaîne ret

bin2decString endpUnité A6: Conversions©Pierre Marchand, 20012279.2 Conversion binaire à décimal

Certains raffinements pourraient s'avérer souhaitables dans les programmes présentés dans cette section. Notamment :

Conversion décimal-binaire

Traitement des nombres négatifs

Traitement des espaces au début

Conversion binaire-décimal

Traitement des nombres négatifs

Éliminer les zéros initiaux, par exemple, retourner 3 au lieu de

000000003Unité A6: Conversions

10©Pierre Marchand, 20012289.3 Conversion binaire à chaîne hexadécimale

Pour effectuer cette conversion, on effectue une rotation de eax de 4 bits vers la gauche pour mettre les 4 bits les plus significatifs à droite.

On copie al dans bl.

On masque ensuite les 4 bits de poids fort de bl avec : and bl, 0x0F. On ajoute 0x30 à bl pour le convertir en ASCII : add bl, 0x30 On écrit bl dans le résultat et on incrémente le pointeur. On effectue cette opération 8 fois.Unité A6: Conversions

12 34 56 7823 45 67 81

8101

0131©Pierre Marchand, 20012299.3 Conversion binaire à chaîne hexadécimale

Long2HexString proc num:DWORD, HexString:LPSTR

movedi, HexString moveax, num movecx, 8; 8 car. pour représenter un long lp:roleax, 4; 4 bits suivants movbl, al andbl, 0x0F; masquer les 4 bits de droite addbl, ' 0 '; convertir en ASCII cmpbl, ' 9 ' jbeok; si c'est un chiffre 0-9 addbl, 7; si c'est une lettre A-FUnité A6: Conversions

11©Pierre Marchand, 2001230

9.3 Conversion binaire à chaîne hexadécimale

ok:mov[edi],bl; placer dans la chaîne incedi dececx jnzlp movbyte ptr [edi], 0; caractère de fin de chaîne ret

long2HexString endpUnité A6: Conversions©Pierre Marchand, 20012319.3 Conversion binaire à chaîne hexadécimale

Une autre façon d'effectuer cette conversion utilise une table de 16 entrées contenant les codes ASCII des chiffres et des lettres correspondant aux nombres hexadécimaux 0 à F. On place le nombre à convertir dans edx. On effectue comme dans la façon précédente une rotation vers la gauche de edx, et on copie dl dans al. On masque les 4 bits de poids fort. Ensuite on se sert de al comme indice dans la table de 16 codes ASCII. L'instruction XLAT remplace al par le contenu de [ebx + al].

Par exemple, 0x0B donnera le code 0x42 = 'B'.

On écrit ensuite al dans le résultat et on incrémente le pointeur.Unité A6: Conversions

12©Pierre Marchand, 2001232

9.3 Conversion binaire à chaîne hexadécimale

tabledb '0123456789ABCDEF'

Long2HexString proc num:DWORD, HexString:LPSTR

movedi, HexString leaebx, table; table de traduction dans ebx movecx, 8; toujours 8 car. movedx, num; nombre à convertir lp:roledx, 4; digit suivant moval, dl andal, 0x0F; garder 4 bits seulement xlat; traduire

mov[edi], al; écrire dans destinationUnité A6: Conversions©Pierre Marchand, 20012339.3 Conversion binaire à chaîne hexadécimale

incedi dececx jnelp movebyte ptr [edi], 0; caractère de fin de chaîne ret

Long2HexString endpUnité A6: Conversions

quotesdbs_dbs20.pdfusesText_26
[PDF] convertisseur temps

[PDF] exercice conversion aire 6eme

[PDF] 0 6 m2 en dam2

[PDF] mesures d'aires exercices cm2

[PDF] 2 dam2 en m2

[PDF] 42.195 km en miles

[PDF] tableau vma fractionné

[PDF] tableau allure course ? pied

[PDF] conversion min/km km/h

[PDF] marathon en miles

[PDF] vma marathon

[PDF] convertir min/miles en km/h

[PDF] calcul allure course ? pied

[PDF] exercice conversion binaire decimal hexadecimal octal

[PDF] convertir base 10 en base 5