Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
Page 1 sur 1
Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
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 ============================================================================
Re: Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
- Code:
rem ============================================================================
rem Conversion entre bases de 2 à 36
rem Papydall le 20 / 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 ============================================================================
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
Lun 1 Jan - 0:25 par Papydall-Admin
» A ceux qui célèbre Noël, bonnes fêtes
Dim 24 Déc - 10:49 par Papydall-Admin
» Joyeux Noël et Bonne Année
Ven 8 Déc - 1:34 par Papydall-Admin
» Planets of the Solar System : Tilts and Spins
Lun 20 Mar - 15:43 par Papydall-Admin
» Bonne Année 2023
Sam 31 Déc - 1:39 par Papydall-Admin
» Fractals - Mandelbrot
Ven 21 Aoû - 22:51 par Papydall-Admin
» Convertisseur Décimal ---> Binaire, Octal, Hexadécimal, ...
Mer 21 Nov - 1:08 par Papydall-Admin
» Balises {USER...}
Lun 19 Nov - 22:12 par Papydall-Admin
» Useful Dog
Ven 6 Avr - 14:25 par Papydall-Admin