decalage d'un nombre binaire a gauche ou a droite ??

A

avoriaz

Guest
salut le forum,


voici une petite apllication ci joint , une table de convertion que ma joint TI hier que j'ai adapdter a mon application via un userform..

en faite je recherche dans une table une valeur qui a un adressage en hexa

cette valeur , je la converti en binaire, et decimal

mon probleme c'est que cette valeur en hexa transformer en binaire sur 16 bits et que je dois decouper le binaire

je dois parfois prendre sur cette valeur les bits de points fort, d'autre fois les bits de points faibles et les bits du milieu celon le cas ....

j'ai poster si joint mon userform pour que vous puissiez mieux me comprendre

merci a ce qui m'aiderons
(en gros registre a decalage a droite, ou a gauche en vba ) pas facile pour moi

avo
 

Pièces jointes

  • ESSAIS.zip
    21.1 KB · Affichages: 84
  • ESSAIS.zip
    21.1 KB · Affichages: 93
  • ESSAIS.zip
    21.1 KB · Affichages: 94
E

EricS

Guest
Bonjour,

un essai à faire pour le principe
dim x as single
data = "0101000011"
'décalage de x position vers la droite avec réinjection
x = inputbox ("nb de décalages à droite")
if x > len(data) then exit sub
data = right(data,x) & left(data, len(data)-x)


A+
Eric
 
A

avoriaz

Guest
SALUT LE FORUM

d'abord un grand merci a erics pour ca reponse !!!

mais je n'arrive pas a faire fonctionner cette macro, l'affichage ne reste pas en binaire, quand je fais le decallage prends n_ bits pour les mettre dans un texbox en faite je prends un certain nombre de bits d'une valeur binaire que j'affiche dans 3 texbox differents

voila ou j'en suis, j'ai aussi joint un fichier zip

Private Sub CommandButton1_Click()
Dim x As Single 'je prends juste les 6 premiers bits pour affichage dans la textbox6
Dim y As Single 'je prends les 6 bits suivants bits pour affichage dans la textbox5
Dim z As Single 'je prends les 4 derniers pour affichage dans textbox 4

DATA = Range("b2") ' cellule qui possede la valeur du nombre binaire

'décalage de x position vers la droite avec réinjection
x = 6 'je prends juste les 6 premiers bits pour affichage dans la textbox6
If x > Len(DATA) Then Exit Sub
DATA = Right(DATA, x) & Left(DATA, Len(DATA) - x)

Range("b3") = DATA ' affichage du resultat apres decalage afficher en binaire sans virgule

End Sub
_______________________________________

et voila un exemple de ce que je voudrais en resultat !!

si le nombre bianaire et: 1010 111111 101101 (VALEUR EN CELLULE B2)

TEXTBOX 6 AFFICHE: 101101
TEXTBOX 5 AFFICHE: 111111
TEXTBOX 4 affiche : 1010

voila

encore merci

avo
 

Pièces jointes

  • ESSAIS2.zip
    22.2 KB · Affichages: 62
  • ESSAIS2.zip
    22.2 KB · Affichages: 56
  • ESSAIS2.zip
    22.2 KB · Affichages: 66
E

EricS

Guest
Bonjour

pour les décalages tu as intérêt à déclarer tes cellules (nombres binaires et hexa) en mode texte car sinon tu passeras en scientifique quand ton nombre s'allongera. Les variables correspondantes seront des strings

A noter il me semble queles fonctions binhex et hexbin existent... jette un oeil à la rubrique fonctions techniques de l'aide

A+

Eric
 
A

avoriaz

Guest
solution :decalage d'un nombre binaire a gauche ou a droite ??

salut le forum

me revoila mais avec la solution:

grace a didier qui a repris le programme , le decoupage du nombre binaire ce fais a la perfection..

je joint donc la reponse a ma demande afin que d'autres utilisateurs puissent etre aider au cas ou ce sujet les interresses..;

Ca peux servir pour la formation d'une convertion hexa, binaire et son decoupage dans les modules d'automatisme a l'ecole par exemple ....

fichiers joints en zip.......*

les lignes du decoupage sont les suivantes :

sachant que la valeur binaire et en b2 ( 'noublier pas de mettre la cellule B2 en mode texte dans format cellule sous exel)

Right(chaine,Nbre de caractères)
TextBox30.Text = Left(Range("B2"), 4)

Mid(chaine, Départ, Nombre de caractères)
TextBox5.Text = Mid(Range("B2"), 5, 6)

Right(chaine,Nbre de caractères)
TextBox6.Text = Right(Range("B2"), 6)

voila grand merci a didier pour le decoupage !!!

avoriaz
 

Pièces jointes

  • solutionessais.zip
    21.9 KB · Affichages: 62

Discussions similaires

Réponses
16
Affichages
565

Statistiques des forums

Discussions
312 502
Messages
2 089 019
Membres
104 006
dernier inscrit
CABROL