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 |
|
|
| Conversion des bases : binaire, octal, decimal, héxadécimal | |
| | Auteur | Message |
---|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Conversion des bases : binaire, octal, decimal, héxadécimal Sam 17 Nov 2018 - 17:29 | |
| Bonjour à tous ! Je ne sais pas s'il y a encore des gens vivants sur le forum... Si c'est le cas, j'aimerai savoir s'il y a des fonctions dans Panoramic qui permettent ces conversions ? Et sinon, y a t'il des formules de calculs pour passer d'une base à l'autre ? Je sais que Marc (enfin je crois que c'est lui..) avait réalisé un convertisseur mais je ne le retrouve pas. Merci d'avance pour vos réponses. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 17 Nov 2018 - 18:47 | |
| Salut Minibug ! Toujours vivant, un peu bancale mais toujours vivant ! Pour ce qui est des conversions, je pense que c' était du Papydall. c'était gigi75 https://panoramic.1fr1.net/t5468-convertisseur-de-base-10-de-2-36?highlight=baseet du Papydall : - Code:
-
rem ============================================================================ rem Conversion de la base 10 vers la base 256 rem les "chiffres" de la base 256 sont les caractères du code ASCII rem ============================================================================
dim n,s$,result$ width 0,1050 : height 0,800 : color 0,150,100,50 alpha 10 : top 10,10 : left 10, 250 : font_bold 10 : font_name 10,"arial" font_size 10,20 : font_color 10, 0,255,255 : caption 10,"Conversion base 10 vers base 256" for n = 1 to 5 list 100*n : height 100*n, 700 : width 100*n, 170 : top 100*n, 50 : left 100*n, 200*n-180 color 100*n,0,0,255 : font_color 100*n,255,255,0 : font_bold 100*n next n
for n = 1 to 255 Decimal_To_Base256(n) if n < 100 then s$ = " " if n < 10 then s$ = " " if n < 51 item_add 100, s$ + str$(n) + " décimal = " + result$ + " base 256" else if n < 102 item_add 200, s$ + str$(n) + " décimal = " + result$ + " base 256" else if n < 153 item_add 300, s$ + str$(n) + " décimal = " + result$ + " base 256" else if n < 204 item_add 400, s$ + str$(n) + " décimal = " + result$ + " base 256" else item_add 500, s$ + str$(n) + " décimal = " + result$ + " base 256" end_if end_if end_if end_if next n
' ****************************************************************************** end rem ============================================================================ SUB Decimal_To_Base256(nombre_decimal) dim_local q,r,c$ q = nombre_decimal : result$ = "" while q > 0 r = mod(q,256) : q = int(q/256) c$ = chr$(r) : result$ = c$ + result$ end_while end_sub rem ============================================================================ | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Conversion des bases : binaire, octal, decimal, héxadécimal Sam 17 Nov 2018 - 19:42 | |
| | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Conversion des bases : binaire, octal, decimal, héxadécimal Sam 17 Nov 2018 - 19:58 | |
| Je me sent moins seul d'un seul coup ! merci à tous les 2 pour vos retours. - Yannik a écrit:
- Toujours vivant, un peu bancale mais toujours vivant !
Prends soin de toi. - Marc a écrit:
- Noyé dans les peintures plafonds et portes + tapisseries des chambres, salon, couloir, cage d'escalier, cuisine...
Et oui il n'y a pas que la programmation dans la vie... Bon courage pour tes travaux PS : Pour le code je l'avais retrouvé entre temps. Merci. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion des bases : binaire, octal, decimal, héxadécimal Dim 18 Nov 2018 - 1:09 | |
| - Minibug a écrit:
- … j'aimerai savoir s'il y a des fonctions dans Panoramic qui permettent ces conversions ?
En Panoramic, tu as les deux fonctions HEX$(V) et HEX(V$) qui retournent respectivement la valeur hexadécimale d'une représentation décimale et la valeur décimale d'une représentation hexadécimale. Pour les autres conversions, je t’offre gratuitement (à toi et à tous les Panoramiciens « encore vivants sur le forum ») le code ci-après. - Code:
-
rem ============================================================================ rem Conversion entre bases par Papydall rem Décimal -------> Hexadécimal rem Hexadécimal ---> Décimal rem Hexadécimal ---> Binaire rem Binaire -------> Décimal rem Décimal -------> Binaire rem rem ======================================================================== ' message Dec2Hex$(20) ' message Hex2Dec("20") ' message Hex2Bin$("ff") ' message Bin2Dec("1111") message Dec2Bin$(50) end rem ============================================================================ ' Convertir un nombre décimal en un nombre en hexadécimal ' Paramètre : un nombre en décimal ' Le résultat est une chaîne de caractères représentant un nombre en hexadécimal FNC Dec2Hex$(decimal) result hex$(decimal) END_FNC rem ============================================================================ ' Convertir un nombre hexadécimal en un nombre en décimal ' Paramètre : une chaîne représentant un nombre en hexadécimal ' Le résultat est un nombre en décimal FNC Hex2Dec(hexa$) result hex(hexa$) END_FNC rem ============================================================================ ' Convertir un nombre hexadécimal en un nombre en binaire ' Paramètre : une chaîne de caractères représentant un nombre en hexadécimal ' Le résultat est une chaîne de caractères représentant un nombre en binaire FNC Hex2Bin$(hexa$) dim_local i,h$,r$ h$ = upper$(hexa$) for i = 1 to len(h$) select asc(mid$(h$,i,1)) case 48 : r$ = r$ + " 0000" case 49 : r$ = r$ + " 0001" case 50 : r$ = r$ + " 0010" case 51 : r$ = r$ + " 0011" case 52 : r$ = r$ + " 0100" case 53 : r$ = r$ + " 0101" case 54 : r$ = r$ + " 0110" case 55 : r$ = r$ + " 0111" case 56 : r$ = r$ + " 1000" case 57 : r$ = r$ + " 1001" case 65 : r$ = r$ + " 1010" case 66 : r$ = r$ + " 1011" case 67 : r$ = r$ + " 1100" case 68 : r$ = r$ + " 1101" case 69 : r$ = r$ + " 1110" case 70 : r$ = r$ + " 1111" end_select next i result r$ END_FNC rem ============================================================================ ' Convertir un nombre binaire en un nombre en décimal ' Paramètre : une chaîne de caractères représentant un nombre en binaire ' Le résultat est un nombre en décimal FNC Bin2Dec(bin$) dim_local i,r r= 0 for i = 1 to len(bin$) If Mid$(bin$, Len(bin$) - i + 1, 1) = "1" then r = r + power(2,i-1) next i result r END_FNC rem ============================================================================ ' Convertir un nombre décimal en un nombre en binaire ' Paramètre : un nombre en décimal ' Le résultat est une chaîne de caractères représentant un nombre en binaire FNC Dec2Bin$(dec) dim_local n,tmp$ n = dec while n > 1 tmp$ = str$(n-2*int(n/2)) + tmp$ n = int(n/2) end_while result str$(n) + tmp$ END_FNC rem ============================================================================
| |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Conversion des bases : binaire, octal, decimal, héxadécimal Dim 18 Nov 2018 - 9:05 | |
| Bonjour tout le monde ! Merci pour ton programme Papydall. J'ai ressorti un vieux topic de septembre 2012 qui se trouve ici. Il traite justement de conversion binaire. J'ai récupérer un code de Nardo26 qui semble très intéressant... Une première SUB permet de convertir un nombre décimal en n'importe qu'elle base. Et la seconde récupére un nombre en n'importe qu'elle base (qui doit être précisée) vers le décimal. Je l'ai adapté avec les SUB et les DIM_LOCAL pour le rendre plus simple d'utilisation. le voici : - Code:
-
DIM conv$ : conv$="0123456789ABCDEF"
Dec_to_N(234,2) Dec_to_N(74,8) Dec_to_N(51966,16) Dec_to_N(817,3) Dec_to_N(3735928559,16) N_to_Dec("DEADBEEF",16) N_to_Dec("101",2) PRINT "fini !"
END
' ************************************************************ ' * Conversion d'un nombre décimal vers un nombre en base N * ' ************************************************************ SUB Dec_to_N(DecN,base) PRINT "Conversion de ";DecN;" en base ";base;" = "; DIM_LOCAL DecN$ WHILE DecN>0 IF FRAC(DecN/base)=0 DecN$="0"+DecN$ ELSE DecN$=MID$(conv$,(DecN-(INT(DecN/base)*base))+1,1)+DecN$ END_IF DecN=INT(DecN/base) END_WHILE PRINT DecN$ END_SUB
' ************************************************************ ' * Conversion d'un nombre en base N vers un nombre décimal * ' ************************************************************ SUB N_to_Dec(DecN$,base) PRINT "Conversion de ";DecN$;" en base ";base;" = "; DIM_LOCAL DecN WHILE DecN$<>"" DecN=(DecN*base)+INSTR(conv$,LEFT$(DecN$,1))-1 DecN$=RIGHT$(DecN$,LEN(DecN$)-1) END_WHILE PRINT DecN END_SUB
Qu'est ce que vous en pensez ?
Dernière édition par Minibug le Dim 18 Nov 2018 - 9:58, édité 3 fois | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Conversion des bases : binaire, octal, decimal, héxadécimal Dim 18 Nov 2018 - 9:19 | |
| Bonjour Minibug ! Bonjour à tous ! Merci pour le café du dimanche matin ! Je retourne à mes travaux... Bonne journée dominicale ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Conversion des bases : binaire, octal, decimal, héxadécimal Dim 18 Nov 2018 - 9:25 | |
| Ces exemples ne sont pas de moi mais de Nardo26 ! Alors remercions le. D'ailleurs Nardo, si tu nous lis toujours, n’hésites pas à nous faire un petit coucou... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Conversion des bases : binaire, octal, decimal, héxadécimal Mer 21 Nov 2018 - 0:38 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: Conversion des bases : binaire, octal, decimal, héxadécimal | |
| |
| | | | Conversion des bases : binaire, octal, decimal, héxadécimal | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |