FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Form(résolu)
conversion héxa en décimal Emptypar leclode Aujourd'hui à 17:59

» trop de fichiers en cours
conversion héxa en décimal Emptypar Marc Aujourd'hui à 11:42

» Bataille navale SM
conversion héxa en décimal Emptypar jjn4 Hier à 17:39

» Une calculatrice en une ligne de programme
conversion héxa en décimal Emptypar jean_debord Hier à 8:01

» Gestion d'un système client-serveur.
conversion héxa en décimal Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
conversion héxa en décimal Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
conversion héxa en décimal Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
conversion héxa en décimal Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
conversion héxa en décimal Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
conversion héxa en décimal Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
conversion héxa en décimal Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
conversion héxa en décimal Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
conversion héxa en décimal Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
conversion héxa en décimal Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
conversion héxa en décimal Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment : -39%
Pack Home Cinéma Magnat Monitor : Ampli DENON ...
Voir le deal
1190 €

 

 conversion héxa en décimal

Aller en bas 
5 participants
AuteurMessage
papyx

papyx


Nombre de messages : 50
Age : 78
Localisation : hénin-beaumont(62)
Date d'inscription : 04/09/2010

conversion héxa en décimal Empty
MessageSujet: conversion héxa en décimal   conversion héxa en décimal EmptySam 2 Oct 2010 - 13:32

Bonjour
Est-ce qu'il y-a une instruction qui permet de faire cette conversion?
Et inversement.
j'ai trouvé , ne pas tenir compte de ce message
(je sais pas l'annuler)
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

conversion héxa en décimal Empty
MessageSujet: Re: conversion héxa en décimal   conversion héxa en décimal EmptySam 2 Oct 2010 - 21:33

Je sais que tu as trouvé, mais juste pour s'amuser, une conversion d'un nombre décimal en hexa (faite par Panoramic):
Code:
DIM n, h$, fh$
fh$ = "C:\cvh.hex"

n = 2329573: ' par exemple ...
h$ = ""
REPEAT: h$ = CHR$(BIN_AND(n, 255)) + h$: n = INT(n/256): UNTIL n = 0
FILE_OPEN_WRITE 1, fh$: FILE_WRITE 1, h$: FILE_CLOSE 1
FILEBIN_OPEN_READ 1, fh$: FILEBIN_HEXA_READ 1, FILEBIN_SIZE(1), h$: FILEBIN_CLOSE 1
FILE_DELETE fh$
PRINT h$
END
Bon, d'accord, c'est un peu tordu, mais pourquoi faire simple quand on peut faire compliqué ?
Et en plus, ça marche !
Ne tirez pas, je me cache Very Happy
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2690
Date d'inscription : 13/09/2009

conversion héxa en décimal Empty
MessageSujet: +++   conversion héxa en décimal EmptySam 2 Oct 2010 - 23:43

Moi, je trouve la méthode plutôt géniale !
Sans blague (pour une fois) !
king
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

conversion héxa en décimal Empty
MessageSujet: Re: conversion héxa en décimal   conversion héxa en décimal EmptyDim 3 Oct 2010 - 0:03

Disons que c'est marrant, mais tout de même, deux accès disque avec création d'un fichier pour convertir un seul nombre... il y a des méthodes plus économiques (voir dans les archives).
C'était juste un petit exercice de style Very Happy
Allez, Sleep
Revenir en haut Aller en bas
d.j.peters

d.j.peters


Nombre de messages : 77
Age : 59
Localisation : Germany
Date d'inscription : 31/07/2010

conversion héxa en décimal Empty
MessageSujet: Re: conversion héxa en décimal   conversion héxa en décimal EmptyDim 3 Oct 2010 - 11:08

DEC,BIN,HEX
Code:
label Value

dim i%,l%
dim Numbers$:Numbers$ = "123456789ABCDEF"

dim v$,v%,basis$,basis%

v$ = "20":gosub Value:print str$(v%)
v$ = "&H2FA":gosub Value:print str$(v%)
v$ = "0x1ff":gosub Value:print str$(v%)
v$ = "&B11010101":gosub Value:print str$(v%)

end

' convert string number to decimal
' input:  v$ (dec,hex,bin)
' output: v% (dec%)
Value:
  v% = 0
  l% = len(v$)
  if l% = 0 then return
  v$ = upper$(v$)
  Basis$ = left$(v$,2)
  ' BASIC and C hex
  if Basis$ ="&H" or Basis$ = "0X"
    Basis% = 16
    l%=l%-2:v$=right$(v$,l%)
  else
    ' BASIC binary
    if Basis$ = "&B"
      Basis% =  2
      l%=l%-2:v$=right$(v$,l%)
    else
      ' decimal
      Basis% = 10
    end_if
  end_if

  if l%<1 then return
  for i%=1 to l%
    v% = v% * Basis%
    v% = v% + instr(Numbers$,mid$(v$,i%,1))
  next i%
  return
Revenir en haut Aller en bas
http://shiny3d.de
jjn4

jjn4


Nombre de messages : 2690
Date d'inscription : 13/09/2009

conversion héxa en décimal Empty
MessageSujet: +++   conversion héxa en décimal EmptyDim 3 Oct 2010 - 11:58

On arrive à un super méga-convertisseur !
Extra !
king
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

conversion héxa en décimal Empty
MessageSujet: Re: conversion héxa en décimal   conversion héxa en décimal EmptyDim 3 Oct 2010 - 13:53

Un peu plus court que d.j., mais moins universel (il n'y a pas le binaire, qui il est vrai ne sert pas souvent):
Code:
DIM v, h$, i%
LABEL cvh, chv

v = 2329573: ' par exemple ...
GOSUB cvh: PRINT h$: GOSUB chv: PRINT STR$(v)
END

cvh:
h$ = "": ' v décimal -> h$ hexa
REPEAT
h$ = MID$("0123456789ABCDEF",1+BIN_AND(v,15),1)+h$: v = INT(v/16)
UNTIL v=0
RETURN

chv:
v = 0: ' h$ hexa -> v décimal
FOR i% = 1 TO LEN(h$)
    v = v*16 + INSTR("0123456789ABCDEF", MID$(h$, i%, 1))-1
NEXT i%
RETURN
Mais en tout cas un peu plus rationnel que ce que j'ai déposé plus haut !
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2690
Date d'inscription : 13/09/2009

conversion héxa en décimal Empty
MessageSujet: +++   conversion héxa en décimal EmptyDim 3 Oct 2010 - 14:29

Quand tu écris cvh ou chv,
je comprends c pour convertisseur
h pour hexadécimal
mais que veut dire v ?
scratch
Me permets-tu de me servir de ton dernier programme
pour faire et publier un super-convertisseur ?
bom
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

conversion héxa en décimal Empty
MessageSujet: Re: conversion héxa en décimal   conversion héxa en décimal EmptyDim 3 Oct 2010 - 14:36

Evidemment jj, je considère que tout ce qui est mis ici tombe dans le domaine public ! donc uses et abuses.
J'ai mis v pour valeur, j'aurais sans doute dû mettre d comme décimal, et peut-être mettre des noms plus explicites pour les s/p: par exemple Dec2Hex et Hex2Dec.
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2690
Date d'inscription : 13/09/2009

conversion héxa en décimal Empty
MessageSujet: +++   conversion héxa en décimal EmptyDim 3 Oct 2010 - 18:37

Et voilà un super-convertisseur très utilitaire et facile à utiliser :

Ah, pour convertir de l'hexa ne comportant pas de lettre
ou du décimal ne comportant que des 1 et des 0
consultez l'aide fournie.
sunny
Code:
rem ' Super-convertisseur Hex-dec-bin
dim a : rem Annulation de l`opération si caractère anormal
dim d : rem Décimal si d=1
dim h : rem Hexadécimal si h=1
dim op : rem Nature de l`OPération demandée
dim a$ , i% , j% : rem Variables provisoires
dim h$ : rem Valeur donnée (éventuellement Hexadécimale)
dim v : rem Valeur donnée (en décimal ou en binaire)
label aide , cbd , cdb , cdh, chd , colle , conv , copie , key , vide , zut
caption 0,"SUPER-CONVERTISSEUR HEXA-DÉCI-BIN"
width 0,380 : height 0,420

alpha 1
  left 1,40 : top 1,20 : font_bold 1
  caption 1,"Entrez la donnée à convertir :"

edit 2
  left 2,40 : top 2,40 : width 2,160
  set_focus 2
  on_key_up 2,key

alpha 3
  left 3,250 : top 3,20 : font_bold 3
  caption 3,"Convertir en :"

option 4
  left 4,250 : top 4,45
  caption 4,"Hexadécimal"
  mark_on 4

option 5
  left 5,250 : top 5,70
  caption 5,"Décimal"

option 6
  left 6,250 : top 6,95
  caption 6,"Binaire"

button 7
  left 7,100 : top 7,80 : width 7,100 : height 7,30
  caption 7,"Convertir" : font_bold 7
  on_click 7,conv

alpha 8
  left 8,40 : top 8,140 : font_bold 8
  caption 8,"Résultat :"

memo 9
  left 9,40 : top 9,160 : width 9,290 : height 9,200
  bar_vertical 9

button 10
  left 10,120 : top 10,130 : width 10,50 : height 10,20
  caption 10,"Copier" : inactive 10
  on_click 10,copie

button 11
  left 11,200 : top 11,130 : width 11,50 : height 11,20
  caption 11,"Vider"
  on_click 11,vide

button 12
  left 12,280 : top 12,130 : width 12,50 : height 12,20
  caption 12,"Quitter"
  on_click 12,zut

button 13
  left 13,20 : top 13,70 : width 13,50 : height 13,20
  caption 13,"Coller" : inactive 13
  on_click 13,colle

button 14
  left 14,20 : top 14,110 : width 14,50 : height 14,20
  caption 14,"Aide"
  on_click 14,aide

end

aide:
  a$="AIDE AU CONVERTISSEUR HEXA-DÉCIMAL-BINAIRE"+chr$(13)+chr$(13)
  a$=a$+"Le convertisseur est facile à utilier et se suffit à lui-même."
  a$=a$+chr$(13)+"Deux points seulement sont à préciser :"+chr$(13)+chr$(13)
  a$=a$+"Il détecte automatiquement si vous entrez du binaire,"+chr$(13)
  a$=a$+"du décimal ou de l'hexadécimal. Mais si vous entrez"+chr$(13)
  a$=a$+"de l'hexadécimal qui ne contient que des chiffres,"+chr$(13)
  a$=a$+"ou du décimal qui ne contient que des 1 et des 0,"+chr$(13)
  a$=a$+"il peut alors se tromper."+chr$(13)
  a$=a$+"Vous pouvez donc préciser la nature de l'entrée"+chr$(13)
  a$=a$+"en ajoutant une consonne adéquate à la fin :"+chr$(13)
  a$=a$+"- H ou X pour HeXadécimal"+chr$(13)
  a$=a$+"- M ou L pour déciMaL"+chr$(13)
  a$=a$+"- N ou R pour biNaiRe"+chr$(13)
  a$=a$+"(mais ne mettez surtout pas un B ou un D"+chr$(13)
  a$=a$+"Exemples : 110M ou 124H"+chr$(13)+chr$(13)
  a$=a$+"Le bouton COPIER ne copie que le dernier résultat."+chr$(13)
  a$=a$+"Pour copier une zone mise en surbrillance,"+chr$(13)
  a$=a$+"utiliser le clic droit de la souris."
  message a$
return

cbd:
  j%=0
  for i%=1 to len(h$)
      j%=j%+val(mid$(h$,i%,1))*power(2,len(h$)-i%)
  next i%
  v=j%
return

cdb:
  h$=""
  repeat
      h$=mid$("01",1+bin_and(v,1),1)+h$
      v=int(v/2)
  until v=0
return

cdh:
  h$=""
  repeat
      h$=mid$("0123456789ABCDEF",1+bin_and(v,15),1)+h$
      v=int(v/16)
  until v=0
return

chd:
  v=0
  for i% = 1 to len(h$)
    v=v*16+instr("0123456789ABCDEF",mid$(h$,i%,1))-1
  next i%
return

colle:
  text 2,clipboard_string_paste$
return

conv:
  a=0 : d=0 : h=0 : op=0
  if text$(2)<>""
      h$=text$(2)
      h$=upper$(h$)
      if right$(h$,1)="H" or right$(h$,1)="X" then op=1 : h$=left$(h$,len(h$)-1)
      if right$(h$,1)="M" or right$(h$,1)="L" then op=2 : h$=left$(h$,len(h$)-1)
      if right$(h$,1)="N" or right$(h$,1)="R" then op=3 : h$=left$(h$,len(h$)-1)
      for i%=1 to len(h$)
        if asc(mid$(h$,i%,1))<48 then a=1
        if asc(mid$(h$,i%,1))>57 and asc(mid$(h$,i%,1))<65 then a=1
        if asc(mid$(h$,i%,1))>70 then a=1
      next i%
      if a=0
        for i%=65 to 70
            if instr(h$,chr$(i%))>0 then h=1
        next i%
        for i%=50 to 57
            if instr(h$,chr$(i%))>0 then d=1
        next i%
        if h=1
            op=1
        else
            if d=1
              if op<>1 then op=2
            else
              if op=0 then op=3
            end_if
        end_if
        item_add 9,"ENTRÉE = "+h$
        select op
            case 1 : item_add 9,"NATURE = HEXADÉCIMAL"
            case 2 : item_add 9,"NATURE = DÉCIMAL"
            case 3 : item_add 9,"NATURE = BINAIRE"
        end_select
        if checked(4)=1
            item_add 9,"RÉSULTAT EN HEXADÉCIMAL"
            select op
              case 2 : v=val(h$) : gosub cdh
              case 3 : gosub cbd : gosub cdh
            end_select
        end_if
        if checked(5)=1
            item_add 9,"RÉSULTAT EN DÉCIMAL"
            select op
              case 1 : gosub chd
              case 2 : v=val(h$)
              case 3 : v=val(h$) : gosub cbd
            end_select
            h$=str$(v)
        end_if
        if checked(6)=1
            item_add 9,"RÉSULTAT EN BINAIRE"
            select op
              case 1 : gosub chd : gosub cdb
              case 2 : v=val(h$) : gosub cdb
            end_select
        end_if
        item_add 9,"RÉSULTAT = "+h$
        item_add 9,""
        active 10
      end_if
  end_if
return

copie:
  clipboard_string_copy h$
  active 13
return

key:
  if key_up_code=13 then gosub conv
return

vide:
  text 2,""
  clear 9
  inactive 10
  set_focus 2
return

zut:
terminate
Je ne crois pas qu'il y ait de bug, si vous en trouvez, dites-le moi.
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Invité
Invité




conversion héxa en décimal Empty
MessageSujet: Re: conversion héxa en décimal   conversion héxa en décimal EmptyDim 3 Oct 2010 - 19:41

Ils travaillent bien les gars sur ce forum!
Super
La seule chose: je n'ai pas vérifié les résultats, mais comme je sais que certains le feront!
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

conversion héxa en décimal Empty
MessageSujet: Re: conversion héxa en décimal   conversion héxa en décimal EmptyDim 3 Oct 2010 - 23:29

Pas mal jjn, au moins c'est présentable ! Very Happy
Revenir en haut Aller en bas
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

conversion héxa en décimal Empty
MessageSujet: Re: conversion héxa en décimal   conversion héxa en décimal EmptyLun 4 Oct 2010 - 20:43

Qu'un mot : Bravo ! cheers


@JL35:
Je m'en sers tous les jours du binaire:
on l'utilise beaucoup en automatisme par exemple dans les registres d'état/controle des convertisseurs de fréquence.
Dans les dialogues réseau (champs de bits: très pratique et économique de concentrer des infos en un seul mot)
Dans les registres de micro-contrôleur, etc, etc...
bref dans pas mal d'applic !

Wink
Revenir en haut Aller en bas
http://nardo26.lescigales.org
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

conversion héxa en décimal Empty
MessageSujet: Re: conversion héxa en décimal   conversion héxa en décimal EmptyLun 4 Oct 2010 - 21:41

Je sais évidemment que le binaire est la base de l'informatique, mais en tant que programmeurs on utilise surtout les conversions décimal/hexa dans les deux sens (l'hexa n'étant qu'une façon de représenter le binaire).
Je ne pensais pas bien sûr aux applications industrielles, automatismes, etc, mais là on sort un peu du champ d'application de Panoramic. Il me semble.
Maintenant, évidemment ça ne peut pas faire de mal, qui peut le plus peut le moins ! Very Happy

De même on trouve encore parfois des conversions en octal, qui lui n'est plus d'aucune utilité depuis que les bits sont regroupés par 4 (et non 3 comme dans d'anciennes machines, d'où l'octal)
Revenir en haut Aller en bas
Contenu sponsorisé





conversion héxa en décimal Empty
MessageSujet: Re: conversion héxa en décimal   conversion héxa en décimal Empty

Revenir en haut Aller en bas
 
conversion héxa en décimal
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Conversion hexa/décimal (erreur, annulé)
» Conversions Décimal<->Hexa
» Calculette Décimal/Hexa sous forme de Sub
» conversion hexa
» est-il possible de faire un scroll_bar à valeur décimal?

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: A l'aide!-
Sauter vers: