ÉDITEUR EDNUM & EDIT13 1 2 3 4 5 6 7 8 9 10 11 12
ETUDE D'UN ÉDITEUR DE TEXTE ASCII 850-LATIN-I & WINDOWS-1252![]() ![]()
Les règlements sont faits pour les médiocres et les indécis; rien de grand ne se
fait sans l'imagination,
les hommes sont comme les chiffres, ils n'acquièrent de valeur que par leur position. Napoléon Bonaparte
Il y a des gens qui vous laissent tomber un pot de fleurs sur la tête
d'un cinquième étage et qui vous disent,
je vous offre des roses. Victor Hugo
![]() |
Le programme le plus simple qu'on puisse imaginer pour tous les Terriens![]() ![]() ![]() Avec turbo pascal for Windows ou Turbo C++ Windows, on peut progammamer un éditeur de teste avec quelques fonctions avec les bibliothèques qu'il son programmes pour faire des éditeurs texte. Par contre avec Turbo Pascal 7 pour MS-DOS, pour programmer un éditeur de texte, il vous faut programmer toutes les fonctions nécessaires. Le mouvement du curseur de droite à gauche, de haut vers le bas, remonter/descendre une ligne, insérer un caractère, effacer un caractère à Gauche/droite, créer un nouveau fichier, ouvrir un fichier, sauvegarder le fichier, marquer un bloc, coller/copier un bloc, etc. hello world
On vous explique comme on peut faire un programme simple pour qu'il afficher sur l'écran :
« hello world » [1]
Exemple le fameux « hello world » en lagage Pascal, il s'agit de montrer comment afficher sur l'écran les mots « hello world » (ou d'autres phrases). C'est le programme le plus simple qu'ont puisse imaginer.
{1 HELLO WORLD} {Programme exemple simple en Turbo Pascal} Program HelloWorld; Uses WinCrt; Begin writeln('Hello, world!'); End. {*2 Le mini-programme simple Assembleur de pascal*} {*On peut s'écrire en Assembleur de la façon suivante*} TITLE Program HelloWorld simple de Assembleur CODE SEGMENT ORG 100H ASSUME CS: CODE, DS: CODE MOV DX, OFFSET MESSAGE MOV AH, 9 ;; Chaine d'affichage du DOS INT 21H ;; afficher chaine INT 20H ;; return au DOS MSSAGE DB 'Hello World', 10, 13,'$' CODE ENDS END Au début de l'informatique, dans les années 50, programmer revenait ainsi à écrire de telles suites d'instructions lémentaires. Les langages de programmation les plus proches de ce codage de « bas niveau » sont appelés « langages d'assemblage » ou « Assembleurs ». Programmer dans un tel langage nécessite de connaître l'architecture matérielle de l'ordinateur sur lequel il s'exécutera.
Sur internet vous pouvez trouver beaucoup des « éditeurs de texte » mais
c'est difficile de trouverez leur code source détaille des toutes les fonctions comme à été
programme.
Programmer, ce n'est pas toujours simple il faut penser logiquement, par étapes, envisager
toutes les possibilités des actions, demande une grande attention, une grande rigueur.
Mais à ces complications s'ajoute encore l'apprentissage d'une syntaxe extrêmement ardue,
qui ne supporte pas la moindre faute, à la virgule près.
Exemple system binaire : 111 = 7 Pour programmer il faut aussi avoir certaines qualités et le programmeur doit se concentrer sur le problème à résoudre. Avoir beaucoup de patience, pas qu'un programme ne marche pas toujours du premier coup. Il faut avoir de la logique et comprendre ce qui et logique, savoir réfléchir calmement, etc.
![]()
Une Histoire vrai :
Dans le année 2011, il à un couple de personnes qu'ils vont acheter un ordinateur dans les
grandes-surfaces, et lendemain ils le retournent au magassin en se plainant que l'ordinateur ne
fonction pas.
Alors le vendeur lui demande: es que vous-avez appuyez sur le bouton marche ?
Le client répond : à pas qu'il faut appuyer aussi sur un bouton, alors ce ne pas un ordinateur dernier cri comme disait la PUB !
|
Programmation structuréeLa démarche de conception d'un programmeConcevoir un programme pour résoudre un problème donné, c'est donc suivre la démarche de la figure [1.1]. ![]() Figure 1.1: démarche de conception d'un programme
Dans ce schéma, les phases d'Analyse et de Traduction sont des opérations intellectuelles
humaines, alors que les phases de compilation et d'exécution sont réalisées automatiquement
par la machine. Le programme source et le programme exécutable sont deux versions
numériques (stockées sous forme de bits dans la mémoire) du même algorithme.
Une erreur syntaxique est une faute d'écriture (l'équivalent d'une faute d'orthographe ou
de grammaire en français); elle est signalée par le compilateur quand celui-ci ne sait pas
comment interpréter certaines instructions du programme source afin de les traduire dans
le langage cible (Assembleur).
Ces erreurs, quasiment inévitables même par les programmeurs expérimentés, proviennent
d'un non respect des préconisations (draconiennes !) du langage de haut niveau
utilisé pour le programme source.
Une erreur sémantique, beaucoup plus grave, provient d'une mauvaise conception de la méthode suivie pour résoudre le problème. C'est alors l'algorithme lui-même qui doit être modifié, ce qui oblige à remettre en cause les partis pris de la phase d'Analyse. Langages d'assemblage et langages évoluésEcrire un programme, c'est donc écrire une suite d'instructions élémentaires s'enchaînant les unes après les autres pour réaliser un traitement sur des données. Dans le disque dur et la mémoire centrale, ces programmes sont codés sous forme de bits à la façon du mini-programme dont l'exécution est détaillée en [1.2].
De tels programmes sont aussi appelés des « programmes exécutables »,
puisqu'ils sont directement prêts à être exécutés.
Les programmes écrits en Assembleur se traduisent immédiatement en programmes exécutables. Mais programmer en Assembleur n'est ni très simple ni très agréable. Aussi, de nouveaux langages de programmation ont peu à peu été définis pour faciliter la tâche des programmeurs. En inventer un nouveau, cela signifie :
La difficulté vient plutôt de la seconde condition que de la première. En effet, toutes les langues sont en principe capables d'exprimer toute méthode de calcul, tout algorithme, de façon plus ou moins informelle. Mais les ordinateurs ne comprennent rien à notre façon de parler. De plus, les langues des hommes sont beaucoup trop imprécises et ambiguës pour être traduisibles directement en Assembleur. Le problème est donc de définir une langue qui sera traduisible en Assembleur, de telle sorte que cette traduction elle-même puisse s'exprimer par un algorithme. Ce rôle de traduction est joué par ce qu'on appelle les compilateurs. Un compilateur est un logiciel capable de transformer un programme écrit dans un langage de programmation donné L1 en un programme réalisant le même traitement mais écrit dans un autre langage L2 (en général un Assembleur), comme le montre le schéma de la figure [1.2] ![]() Fig 1.2: rôle d'un compilateur démarche de conception d'un programme
Les compilateurs étant des programmes, ils sont eux-mêmes écrits dans un certain langage de programmation (et s'ils ne sont pas écrits en Assembleur, ils doivent eux-mêmes être compilés...) L'utilisation de compilateurs a permis la définition de langages de programmation de haut niveau ou évolués. Dans de tels langages, on peut s'abstraire de la connaissance matérielle de l'ordinateur sur lequel s'exécutera le programme pour se concentrer sur sa seule logique. Pascal est un langage de ce type. En Pascal, notre mini-programme peut s'écrire (à quelques instructions près) : Begin nombre3:= nombre1 + nombre2; nombre5:= nombre3 * nombre4; End. ou plus simplement : Begin nombre5:= (nombre1 + nombre2) * nombre4; End.
Dans ce programme, « := » et « ; » ainsi que les mots clés BEGIN et END sont des symboles
propres au langage Pascal.
Les mots « nombre1 » à « nombre5 », eux, ne désignent plus une
adresse en mémoire ni un registre mais une variable, c'est-à-dire un espace mémoire
quelconque, abstrait, auquel est attribué un nom, sans que le programmeur ait à préciser
où il se trouve physiquement.
nombre5 = (nombre1 + nombre2) * nombre4 Mais attention : le symbole « = » apparaissant dans cette formule n'est pas une égalité au sens mathématique du terme. C'est une instruction, un ordre signifiant que ce qui est écrit à droite est la nouvelle valeur qui doit être stockée dans la variable écrite à gauche. Ainsi, en informatique, une instruction comme : n = n+1 Est tout à fait recevable, alors qu'elle n'aurait pas grand sens en mathématique. Elle signifie : la nouvelle valeur de n est son ancienne valeur + 1.
Source : Introduction à l'informatique
université de Lille3
AlgorithmeUn algorithme est un ensemble fini d'actions identifiables et finies(en temps et en moyens de toutes sortes nécessaires pour les exécuter) dont l'exécution dans un ordre convenu à l'avance réalise un calcul donne. ProgrammeUn programme est l'expression d'un algorithme par une machine donnée dans un langage de programmation donné, en utilisant le répertoire d'actions (opérations-instructions) et les règles de composition propres à cette machine et ce langage donné. Machine
Une machine réalise les opérations/fonctions :
Son organisation peut être schématisée en : Schéma simplifie d'une machine.![]()
Appoche de l'activité de programmation passage d'un problème a un programme
(a) (b) (c) Problème ----> Énoncé ----> Algorithme ----> programme (a) Explicitation : un problème n'est jamais tout à fait défini, il y a toujours des sous-entendus dus à la connaissance du monde que possède la personne qui pose le problème : cette connaissance implicite du concepteur doit être explicitement fournie à l'ordinateur. Un premier effort est de déterminer une explicitation du problème, en ce qu'on peut appeler un énoncé. (b) Programmation : un problème et un énoncé sont souvent intemporels, statiques, alors qu'un programme décrit une suite d'actions, c'est-à-dire une activité dynamique (il existe aussi des problèmes qui font intervenir le temps "réel" extérieur à la machine; ce n'est pas le temps du calcul). Le passage du statique au dynamique est la conception d'un algorithme. Un algorithme est une description des actions résolvant un problème, il intègre la partie dynamique de la résolution. (c) Codification : un programme est écrit dans un langage strict, imposé, prenant en compte les contraintes liées à la machine qui exécutera les actions selon un des ordres possibles et avec des variables spécifiques. La codification est le passage de l'algorithme au programme. Ces trois étapes correspondent à des activités de nature différente, leur mélange complique la tâche et conduit à des erreurs. Par exemple, les notions liées à l'ordre d'exécution des actions, de même que les variables n'ont rien à faire lors de l'établissement de l'énoncé. Il suffit de les introduire au niveau de l'algorithme; mais celui-ci doit n'utiliser que des données abstraites.
D'où une considération méthodologique : Etude de un éditeur de texte avec Turbo Pascal![]()
L'étude d'un éditeur de texte
Un éditeur de textec'est un project qu'il peut prendre des mois de réflexion et de programmations. Un des moyens utilise pour mieux maîtriser la complexité du logiciel est de constituer un ensemble de routines, de parties de programme ayan pour fonction la réalisation d'une tâche précise, en général simple. Ces routines viennent en fait compléter l'instruction du langage de developement avec de nouvelles fonctions ou procédures. La mise au point est moins erratique et la fiabilité obtenu meilleure. Dite-vous qu'il faudra écrire de centaines de procédures et fonctions, et le passage d'une à l'autre ne doit pas planter le programme, la moindre variable ou appel à une procédure peut provoquer une confusion dans la pile si cela et mal interprète, et cela peut planter le programme. Méthode
Il faut écrire procédure par procédure et les tester de plusieurs façons jusque que
la fonction soit correcte, et par la suite pourra être inclus sur le programme principal de l'éditeur.
Sur l'éditeur une procédure principale permettra donc d'entrer les données au clavier et
visualiser les résultats dans l'encrant de l'éditeur.
Certaines routines sont stokes dans des fichiers différentes, ce qui permet de les utiliser
directement en plaçant dans l'unité correspondante avec les directives Inclure
correspondante comme ceci : {$I file_ecrire.pas}
Cette méthode permet une souplesse maximale pour créer les unîtes.
Tester un programmeC'est se mettre à la place de l'utilisateur et imaginer tout ce qui peut faire comme erreurs, et une erreur ne doit pas planter le programme, il doit afficher un message d'erreur, et un lui indiquant l'erreur, et dans certains cas, ce qu'il doit-il faire pour poursuivre. Tester un programme de fois peut pendre autant de temps que de le programmer, tout dépend de ce que le programme peut-il faire. Les Erreurs de programmations
Quant le programme fait une erreur et vous ne n'arrivez pas résoudre d'où-t-il bien peu devenir cette erreur,
mais l'erreur de fois et devant vous yeux et votre cerveau et fatigue et vous ne la voyiez pas, laissez-la pour demain
et vous avec plus de chances de le trouver plus facilement l'erreur et de détecter de ou il bien.
La méthode copier/collé
Si vous employez cette méthode en faisant une « copie/coller » des sources des unités,
et vous arrivez à compiler le programme, il peut fonctionner si vous respectez l'ordre de
la compilation/exécution.
Mais dite-vous que avec la méthode « copier/coller » vous n'arriverez pas à progresser et
surtout vous n'auriez rien appris aux fonctions nécessaires pour programmer un éditeur de texte.
Programmer un éditeur de texte
Une telle application soulève beaucoup de réflexion et de la logique.
Le corps de l'éditeur doit disposer un minimum de fonctions suivantes :
Les variables globales, le Buffer, l'écran, caractères de contrôle divers.
Le buffer de l'éditeur
C'est un tableau de chaîne de caractères, sa taille est définie par une constante, un élément
du tableau, tout comme si cette une ligne de texte. Définition d'un typepour pouvoir citer un type comme on le fait pour un objet, on donne à chaque type un nom bien déterminé. Certains sont prédéfinis, d'autres sont définis explicitement par une déclaration de type: {*Pour associer un type à un objet, on utilise un énoncé appelé déclaration*} Type T = constructeur de type. T_buffer = ^T; {*ici on tranforme le type T en pointeur*} var x : T; {*1*} var buffer : T_buffer ; {*2*} {*(1) x c'est un variable simple, qui indique que l'on utilise le nom x pour désigner un objet dont les valeurs sont du type T *} {*(1) var x, y, z : T; est équivalente à var x:T; y:T; z:T; *} {*(2) Buffer devient un vaiable d'un objet utilisable et declare comme pointeur de type T. Mais comme tout pointeur, il faut lui réserver une place en mémoire avec GetMem (voir plus bas) *} Affectation variableEn programmation, on est amené à faire varier, pendant l'exécution d'un programme, la correspondante entre un nom et un objet. On appelle variable un nom qui peut être associe successivement à plusieurs objet. On dit parfois, qu'une variable est un objet dont la valeur peut changer au cours de l'exécution d'un programme {*constructeur de type tableau de caractères*} Type Edit_Buffer = Array [1..Max_Buffer+512] of Char; {*constructeur de type pointeur le tableau de caractères*} {*déclaration comme variable le Buffer de l'Editeur*} Buf_Ptr = ^Edit_Buffer; Var Buffer : Buf_Ptr;
Le buffer c'est comme une grande feuille qu'on va écrire du texte, en pascal un
pointeur bloc-mémoire qu'on peut allouer dans le tas est de 65521 octets (64Ko).
Déclarations des pointeurs sur Turbo Pascal{*Declaration du buffer sur la Unité Type_Buf *} {*Types publiques du Buffer pour l'éditeur *} Interface CONST Max_Buffer=51200; {*constante 50ko actuellement*} TYPE Edit_Buffer = Array[1..Max_Buffer+512] of Char; {*1*} Buf_Ptr = ^Edit_Buffer; {*2*} VAR Buffer : Buf_Ptr; {*3*} {*(1) tableau du buffer de l'éditeur *} {*(2) conversion dans un pointeur *} {*(3) Pointeur du Buffer de l'Editeur *} Implementation Begin Buffer:=Nil; End. notes: NIL : Le mot resserve NIL est une valeur constante particulière permettant de neutraliser un pointeur; il ne pointe ainsi sur rien. NIL est compatible avec tous les pointeurs.
Procédure GetMem
Description: P est une variable d'un type pointeur quelconque.
Taille est une expression spécifiant la taille en octets de la variable dynamique allouer.
Restrictions: La plus grande taille de bloc mémoire qu'il est
possible d'allouer en toute sécurité dans le tas en une seule opération est 65528 octets
Crée le buffer en memoire, type pointeur dynamique{* remplisage le buffer d'espaces #32 *} {* ^Z = #26 signifie la fin du buffer *} if MaxAvail < (Max_Buffer+512) then begin GetMem(Buffer,Max_Buffer+512); Fillchar(Buffer^,Max_Buffer+512,' '); Buffer^[1]:=#26; end;
|
Programme AssembleurProcedures en Langage AssembleurL'assembleur
le langage d'assembleur donne une connaissance du fonctionnement interne d'un ordinateur.
et oblige au programmeur à décider des moindres actions de l'ordinateur.
Les programmes en langage d'assembleur sont très précis, et permet au programmeur
d'agir directement sur le matériel, ces programmes peuvent faire des choses qu'aucun autre
ne peut faire pour commander le dispositif de E/S et l'interruption.
Le langage assembleur est très puissant, c'est l'unique langage qui vous permette d'accéder
à toute la puissance d'un processeur.
LA PILE La pile en turbo pascal
La taille de la pile par défaut est de 16Ko est plus que suffisante pour la plupart des applications.
Mais on peut spécifier la taille qu'on désire pour vu que celle-ci soit comprise
entre « 1Ko » pour les petit programmes et « 64Ko » pour un
programme faisant un usage intensif de la récursivité.
Les tailles de la pile et du tas peuvent être ajustées par la directive de compilation
« $M ».
La directive « $M » n'a aucun effet sur les unités.
Le tas
Á chaque appel à « New et GetMem », le stockage est effectué
dynamiquement sur le tas.
En commençant à partir du bas. L'espace est libère par les routines
« Dispose, Release et FreeMem ».
Exemple
Une fonction « A » en exécutant une tâche, peut appeler une autre fonction
« B » pour réaliser une tâche définie, et ainsi de suite...
Turbo Pascal et les liens avec les fichiers objet.Le {$L ...} est utilise afin de faire le lien avec du code écrit en assembleur, pour les sous-programmes déclarés comme externes. le fichier doit être un fichier objet (.OBJ). La directive {$L nomfichier} demande au compilateur de lier le fichier nommé avec le programme ou l'unité en cours de compilation.
Les routines external en langage assembleur doivent respecter certaines règles pour pouvoir fonctionner correctement au sein d'un partiel. Voir le chapitre 14 les routines externes et partiels, du manuel de référence Turbo Pascal.
Turbo Assembleur et Turbo Pascal
La directive EXTRN : accès aux données de Turbo Pascal depuis Turbo Assembler.
Pour construire le programme d'exemple avec le compilateur sur ligne de commande
et l'assembleur, vous utiliserez ce fichier de commandes :
Puisqu'un sous-programme externe doit être déclaré au niveau le plus extérieur de votre programme, vous ne pouvez pas utliser les déclarations EXTRN pour accéder aux objets locaux d'une procédure ou d'une fonction. Cependant quand vos sous-programmes en assembleur sont appelés depuis Turbo Pascal, ils peuvent recevoir des objets en tant que valeurs ou paramètres VAR. Extrait du Manuel de Turbo Assembleur Borland
|
Raccourcis de l'éditeur Ednum
|
Principales Procédures de l'éditeur
|
Schéma pricipal de l'Éditeur
|
Codes ASCII DOS & WindowsLe MS-DOS emploi la page de code 850 Multilingue Latin I
La page de code 850 est une page de code définie par IBM et qui est utilisée en Europe
occidentale avec le système DOS et d’autres systèmes de la même époque.
C’est une extension de l’ASCII sur 8 bits, partiellement compatible avec la page de code 437
dont elle est dérivée et qu’elle modifie.
Elle est encore utilisée dans les fenêtres de type console ou invite de commandes sur les
systèmes Microsoft Windows en Europe occidentale.
![]()
La page de code Windows-1252
ou CP1252 est un jeu de caractères, utilisé historiquement par défaut sur le système
d'exploitation Microsoft Windows en anglais et dans les principales langues d’Europe
de l’Ouest (dont le français).
![]()
La page de code Windows-1252 ou CP1252 est un jeu de caractères,
utilisé historiquement par défaut sur le système d'exploitation Microsoft Windows
en anglais et dans les principales langues d'Europe de l'Ouest (dont le français).
Pour remédier ce problème sur EDIT13, il suffit d'écrire deux fonction pour convertisseur les codes ASCII. Cela permet par exemple de lire le fichier crées par le Bloc-notes avec Turbo Pascal 7 pour le Dos. Dans la table ascii son les codes (80h) ou (128) jusque (FFh) ou (255) comme les caractères spéciaux où accentues...
La fonction Code_ASCII_ANSI (_ss:char): char;
Function Code_ASCII_DOS (_ss:char):char;
La Procédure employé pour ouvrir les fichiers, code ANSI Windows les converti
en code Ascii 850 Multilingue Latin
La fonction employé pour lire (load) les fichiers sur le Edit13. Turbo Pascal for Windows (TPW) peut lire les fichiers créé parle bloc-notes de Windows Mais il ne converti pas les codes ASCII (128 à 255) MS-DOS 850 Multilingue Latin I des fichiers Turbo Pascal 7 La gestion de fichiers
Deux possibilités pour ouvrir un fichier : Par défaut l'éditeur employé le code Windows-1252.
Le menu FILE, pour ouvrir un fichier la sélection LOAD ou F3 et pour sauvegarder le
fichier SAVE ou F2.
Exemple 1
Vous pouvez ouvrir un fichier format Windows et le sauvegarder sur le format DOS,
où vous pouvez ouvrir un fichier DOS et le sauvegarder format Windows.
Exemple 2Pour pas modifier le code du fichier : si cet un fichier DOS, il faut le ouvrir avec la fonction (Menu EDIT « load file dos » et le sauvegarder avec « Save file DOS » ) Si cet un fichier code Windows ouvrez-le avec (Menu FILE Load ou F3, et sauvegardez-le avec SAVE ou F2).
|
Unités de l'éditeur |
Compilation d'Edit13.pas en Edit13.exe
|
Systeme binaireArithmetique Binaire
Ce le mathématicien George BOOLE (1815-1864), mathématicien et logicien anglais.
Il voulait prouver l'existence de tout et de rien à partir de deux états,
dans la recherche sur les lois de la pensée, George Boole décrit un système algébrique
qui sera plus tard connu sous le nom d'algèbre booléenne.
L'ordinateur stocke ces informations au moyen du système de numération binaire, sous forme de niveaux de tensions électriques de deux états, vrai ou faux chaque élément stocké peut avoir deux configurations : « ON » ou « OFF », ce que l'on peut traduire par « présent » ou « absent », en « service » ou « hors-service », « vrai » ou « faux », « 1 » ou « 0 ». A partir de « 0 » et « 1 » on peut faire des opérations arithmétiques très complexes.
On emploie normalement l'arithmétique à base10 ou décimale où il y a 10 chiffres
différents « 0 à 9 ». Le nombre 2368 est en fait 2 milliers, 3 centaines, 6 dizaines et 8 unités. La décomposition du nombre 2368, au point de vue mathématique:
2368 = 2 x 103 + 3 x 102 + 6 x 101 + 8 x 100
XXXX = 2000 + 300 + 60 + 8 {* décimale où binaire : (100 = 1) où (20 = 1) *}
Passage de binaire à décimalA priorité, rien ne distingue le nombre 101 (cent et un) exprimé dans le système décimal traditionnel du nombre 101 (un zéro un) exprimé dans le système binaire (ou de base 2). Pour cette raison, on le notera : 101b Chaque nombre exprimé dans le système binaire a son équivalent dans le système décimal (et vice-versa). Chaque chiffre du nombre binaire est affecté d'un poids. Ainsi, pour le nombre 1011b ![]() Un nombre binaire est égal à la somme de ses poids. ![]() Si l'on effectuait ces opérations sur des nombres binaires à quatre chiffres, on trouverait que leurs équivalents dans le système décimal sont : Les additions de nombres binairesL'addition binaire suit des règles calquées à l'arithmétique traditionnelle en base10.
Durant cette opération, nous avons eu trois reports (d'abord de la colonne de poids 0 vers celle de poids 1, puis de celle de poids 1 vers celle de poids 2 et
enfin de celle de poids 2 vers celle de poids 3).
Autre exemple
L'addition (4 + 12) a donné lieu à deux reports : d'abord de la colonne de poids 2 vers celle de poids 3 et puis de celle de poids 3 vers le vide 0100 +1100 puisque nous calculons sur 4 bits. ------- 0000 Un report est donc « perdu » et le résultat est erroné. Les changements de base & Conversion binaire où décimal
Pour la notation binaire, on applique la règle de la décomposition en une somme de puissances de 2.
Conversion du décimal où binaire
La multiplication en Binaire
En binaire dans une multiplication par 2, il faut ajouter un zéro à la fin du nombre.
|
Compilation du programme
|