Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Mer 21 Nov 2018 - 0:35 | |
| Tout est dans le code, rien à y ajouter ! - Code:
-
rem ============================================================================ rem Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... rem Papydall le 20 / 11 / 2018 rem PANORAMIC-EDITOR Version 0.9.29i5 rem ============================================================================ rem Convertir un nombre en base 10 vers un nombre en base 2 à 36 rem Saisissez un nombre entier en base 10 dans la zone de l’EDIT et le programme rem affichera instantanément le nombre converti dans les différentes bases proposées rem Pour une base autre que celles proposées, choisissez celle qui vous convient rem dans la LIST en bas à gauche (de la base 2 à la base 36). rem ============================================================================
GO()
end rem ============================================================================ SUB GO() label clic, quitter dim b, n, i
width 0,1000 : height 0,500 : color 0,20,200,150 caption 0,"Convertisseur entre bases"
edit 010 : top 010,020 : left 010,200 : set_focus 10 : on_change 10,clic hint 10,"Saisir un nombre entier en décimal" alpha 020 : top 020,020 : left 020,020 : caption 20,"Nombre à convertir" memo 030 : top 030,070 : left 030,200 : hint 30,"Valeur en base 2" alpha 040 : top 040,080 : left 040,120 : caption 40,"Binaire" memo 050 : top 050,120 : left 050,200 : hint 50,"Valeur en base 4" alpha 060 : top 060,130 : left 060,080 : caption 60,"Quaternaire"
memo 070 : top 070,170 : left 070,200 : hint 70,"Valeur en base 8" alpha 080 : top 080,180 : left 080,135 : caption 80,"Octal"
memo 090 : top 090,220 : left 090,200 : hint 90,"Valeur en base 10" alpha 100 : top 100,230 : left 100,110 : caption 100,"Décimal"
memo 110 : top 110,270 : left 110,200 : hint 110,"Valeur en base 16" alpha 120 : top 120,280 : left 120,070 : caption 120,"Hexadécimal"
memo 130 : top 130,360 : left 130,200 alpha 140 : top 140,370 : left 140,010 : caption 140,"Autre Base :"
list 150 : top 150,320 : left 150,140 : height 150,120 : width 150,50 font_bold 150 : font_size 150,12 : on_click 150,clic hint 150,"Choisir la base de la conversion" for i = 2 to 36 : item_add 150,i : next i item_select 150,2
for i = 10 to 140 step 10 font_bold i : font_name i,"tahoma" : font_color i,0,0,255 width i,700 : height i,45 : font_size i,11 next i on_close 0, quitter close_inactive END_SUB rem ============================================================================ Quitter: if message_information_yes_no("Vous voulez vraiment quitter ?") = 1 Close_Main_Form() : close_active end_if Convertir() return rem ============================================================================ Clic: off_change 10 b = item_index(150)+1
if numeric(text$(10)) = 0 message "Un nombre en base décimale, SVP !!!" for i = 10 to 130 step 20 : text i,"" : next i caret_position 10,len(text$(10)) on_change 10,clic return end_if n = val(text$(10)) if n <> int(n) text 10,str$(int(n)) : caret_position 10,len(text$(10)) on_change 10,clic return end_if caption 140,"Autre Base : " + str$(b) item_select 150,b-1 off_change 10 Convertir() set_focus 10 : caret_position 10,len(text$(10)) on_change 10,clic return rem ============================================================================ SUB Convertir() item_add 30,Decimal2BaseB$(n,2) item_add 50,Decimal2BaseB$(n,4) item_add 70,Decimal2BaseB$(n,8) item_add 90,Decimal2BaseB$(n,10) item_add 110,Decimal2BaseB$(n,16) item_add 130,Decimal2BaseB$(n,b) hint 130,"Valeur en base " + str$(b) END_SUB rem ============================================================================ SUB Close_Main_Form() dim_local k,w,h For k = 100 To 60 Step -1 w = width(0) : h = height(0) width 0,w*k/92 : height 0,h*k/92 top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2 pause 100 next k terminate END_SUB rem ============================================================================ ' ************************************************************ ' * Conversion d'un nombre décimal vers un nombre en base B * ' ************************************************************ FNC Decimal2BaseB$(Decimal,base) DIM_local chiffres$ : chiffres$="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" DIM_LOCAL tmp$ if Decimal = 0 then result "0" : Exit_FNC WHILE Decimal > 0 IF FRAC(Decimal / base) = 0 tmp$ = "0" + tmp$ ELSE tmp$ = MID$(chiffres$,(Decimal - (INT(Decimal / base) * base)) + 1,1) + tmp$ END_IF Decimal = INT(Decimal / base) END_WHILE RESULT tmp$ END_FNC rem ============================================================================
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Mer 21 Nov 2018 - 2:09 | |
| Conversion entre bases : convertir un nombre en base B1 vers un nombre en base B2 avec B1 et/ou B2 de 2 à 36 - Code:
-
rem ============================================================================ rem Conversion entre bases de 2 à 36 rem Papydall le 21 / 11 / 2018 rem PANORAMIC-EDITOR Version 0.9.29i5 rem ============================================================================ rem Convertir un nombre en base B1 vers un nombre en base B2 rem B1 et/ou B2 de 2 à 36 rem Par défaut le programme propose de convertir de la base 10 vers la base 2 rem Pour toute autre base, sélectionnez celle qui vous convient dans la LISTE rem à gauche et/ou celle à droite rem ============================================================================ rem Essayez de convertir rem 47524133 (décimal) vers la base 36 rem 25435343763 (décimal) vers la base 36 rem 9591492602340 (décimal) vers la base 28 rem ============================================================================
Go()
end rem ============================================================================ SUB Go() label clic, quitter dim i,b1,b2,n$,erreur width 0,1000 : color 0,100,50,255 caption 0,"Conversion entre bases" alpha 10 : top 10,65 : left 10,25 : font_bold 10 : font_name 10,"arim" caption 10,"De la base :" : font_size 10,14 : font_color 10,255,255,0 alpha 20 : top 20,65 : left 20,525 : font_bold 20 : font_name 20,"arimo" caption 20,"vers la base :" : font_size 20,14 : font_color 20,255,255,0 edit 30 : top 30,20 : left 30,025 : width 30,450 : font_bold 30 : font_size 30,14 font_name 30,"arimo" : set_focus 30 : on_change 30,clic hint 30,"Saisissez un nombre à convertir" + chr$(13) + "de la base à gauche à celle de droite" memo 40 : top 40,10 : left 40,525 : width 40,450 : font_bold 40 : font_size 40,14 height 40, 50 : font_name 30,"arimo" : font_size 40,14 : font_name 40,"arimo" list 50 : top 50,100 : left 50,25 : width 50,450 : height 50,240 : font_bold 50 font_size 50,14 : hint 50,"Selectionnez la base de départ" : on_click 50,clic list 60 : top 60,100 : left 60,525 : width 60,450 : height 60,240 : font_bold 60 font_size 60,14 : hint 60,"Selectionnez la base d'arrivée" : on_click 50,clic for i = 2 to 36 item_add 50,"Base : " + str$(i) : item_add 60,"Base : " + str$(i) next i item_select 50,9 : item_select 60,1 alpha 70 : top 70,350 : left 70,25 : font_bold 70 : font_name 70,"arim" caption 70,"Résultat :" : font_size 70,14 : font_color 70,255,255,0 memo 80 : top 80,390 : left 80,25 : width 80,950 : font_bold 80 : font_size 80,14 height 80,50 : font_name 80,"arimo" : font_size 80,14 : font_name 80,"arimo" on_close 0, quitter close_inactive END_SUB rem ============================================================================ Clic: off_click 50 : off_click 60 : off_change 30 b1 = item_index(50) + 1 : b2 = item_index(60) + 1 : text 30,upper$(text$(30)) n$ = text$(30) Convertir() set_focus 30 : caret_position 30,len(text$(30)) on_click 50,clic : on_click 60,clic : on_change 30,clic return rem ============================================================================ SUB Convertir() dim_local deci erreur = 0 deci = BaseB2Decimal(n$,b1) if erreur = 0 item_add 40,Decimal2BaseB$(Deci,b2) item_add 80,n$ + " (base-" + str$(b1) + " ) = " + Decimal2BaseB$(Deci,b2) + " (base- "+str$(b2)+")" else item_add 40, "Valeur invalide !!!" item_add 80,"Entrée invalide !!!" end_if END_SUB rem ============================================================================ Quitter: if message_information_yes_no("Vous voulez vraiment quitter ?") = 1 Close_Main_Form() : close_active end_if return rem ============================================================================ SUB Close_Main_Form() dim_local k,w,h For k = 100 To 60 Step -1 w = width(0) : h = height(0) width 0,w*k/92 : height 0,h*k/92 top 0,(screen_y - height(0))/2 : left 0,(screen_x - width(0))/2 pause 100 next k terminate END_SUB rem ============================================================================ ' Conversion d'un nombre décimal vers un nombre en base Base FNC Decimal2BaseB$(Decimal,Base) DIM_local chiffres$ : chiffres$="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" DIM_LOCAL tmp$ if Decimal = 0 then result "0" : Exit_FNC WHILE Decimal > 0 IF FRAC(Decimal / base) = 0 tmp$ = "0" + tmp$ ELSE tmp$ = MID$(chiffres$,(Decimal - (INT(Decimal / base) * base)) + 1,1) + tmp$ END_IF Decimal = INT(Decimal / base) END_WHILE RESULT tmp$ END_FNC rem ============================================================================ ' Conversion d'un nombre en base B >= 2 vers un nombre décimal ' Paramètres : ' BaseB$ est une chaine de caractères représentant la valeur du nombre dans ' la base Base FNC BaseB2Decimal(BaseB$,Base) DIM_local chiffres$ : chiffres$="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" DIM_LOCAL Decimal chiffres$ = left$(chiffres$,base) WHILE BaseB$ <> "" if INSTR(chiffres$,LEFT$(BaseB$,1)) = 0 erreur = 1 : exit_fnc end_if Decimal = (Decimal * base) + INSTR(chiffres$,LEFT$(BaseB$,1))-1 BaseB$ = RIGHT$(BaseB$,LEN(BaseB$)-1) END_WHILE RESULT Decimal END_FNC rem ============================================================================
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Mer 21 Nov 2018 - 6:51 | |
| Bonjour Papydall ! Je n'ai pas le temps de tester ce matin mais je regarde en rentrant en fin d'après midi. Merci beaucoup. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Mer 21 Nov 2018 - 17:37 | |
| Très bien Papydall ! C'est conforme à mes attentes. J'ai vu que tu as utilisé les FNC. Je voulais le faire aussi mais comme je ne maîtrise pas encore le concept, j'ai préféré attendre... Et j'ai bien fait! Merci Papydall, je n'ai plus qu'a intégrer tout ça dans PanExpress ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Mer 21 Nov 2018 - 19:07 | |
| Quelqu'un utilise encore l'octal ? j'ai pratiqué ça autrefois, il y a plus de 40 ans, mais depuis... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Mer 21 Nov 2018 - 21:55 | |
| - Minibug a écrit:
Très bien Papydall ! C'est conforme à mes attentes.
J'ai vu que tu as utilisé les FNC. Je voulais le faire aussi mais comme je ne maîtrise pas encore le concept, j'ai préféré attendre... Et j'ai bien fait!
Merci Papydall, je n'ai plus qu'a intégrer tout ça dans PanExpress !
Comme l’appel à un sous-programme retourne systématiquement un résultat, autant utiliser les FNC au lieu des SUB qui réalisent une tâche bien déterminée sans obligation de retourner quoique ce soit. Si c’est utile pour ton PanExpress, … - JL35 a écrit:
- Quelqu'un utilise encore l'octal ? j'ai pratiqué ça autrefois, il y a plus de 40 ans, mais depuis...
Hé jeune homme ! Tu crois que tout le monde soit âgé de 68 ans ? Tu nous a caché ton utilisation du bi-binaire, n’est-ce pas ? Je te vois faire des trous dans une carte perforée de l'époque ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Mer 21 Nov 2018 - 22:12 | |
| Eh oui mon ami, ne le répète à personne, mais j'ai bien connu aussi la carte perforée, c'était à la même époque ! et programmation en langage assembleur, évidemment... c'était au Moyen-Âge... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Mer 21 Nov 2018 - 22:29 | |
| Personnellement je faisais mumuse avec le microprocesseur 8 bits Z80 de Zilog au tout début des années 1980 et le système d’exploitation CP/M. Mais je n'ai pas vécu au Moyen-Âge comme toi ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Mer 21 Nov 2018 - 22:50 | |
| Eh oui, le Z80 bien connu, et mon TRS-80 de chez Tandy (après un Sinclair et autres), bécane sympa, 4k de mémoire augmentés à 16k par mes soins au fer à souder, le pied ! Bon, j'arrête de radoter, on va croire que je suis vieux ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Jeu 22 Nov 2018 - 7:01 | |
| | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Jeu 22 Nov 2018 - 19:43 | |
| Bonsoir à tous ! Super Papydall ! Encore un utilitaire de plus pour les éditeurs ! Merci ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Dim 25 Nov 2018 - 12:14 | |
| @papydall, l'autre jour on parlait de programmation en octal et de cartes perforées, j'en ai retrouvé une dans un bouquin, qui me servait de marque-page, tronquée à gauche signé: Di Nozor | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Dim 25 Nov 2018 - 12:54 | |
| - Citation :
- j'en ai retrouvé une dans un bouquin, qui me servait de marque-page,
Voila un usage inattendu ! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Dim 25 Nov 2018 - 14:58 | |
| Superbe, ce convertisseur ! Bon, j'ai essayé de convertir aussi en espèces sonnantes et trébuchante, mais ça n'a pas marché, dommage ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Dim 25 Nov 2018 - 15:37 | |
| | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... Mar 12 Fév 2019 - 14:02 | |
| Désolé ! Erreur de ma part | |
| | | Contenu sponsorisé
| Sujet: Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... | |
| |
| | | | Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ... | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |