code gray et complément à 2

dedef

XLDnaute Occasionnel
Bonjour,

Je dois faire un certain nombre de conversions de nombres binaires (Gray et complément à 2). J'ai vainement cherché une solution sous excel sur ce forum et également ailleurs, mais visiblement ça ne courre pas les rues!

Quelqu'un aurait-il sous la main une telle fonction (que je suis incapable d'écrire sous VBA)?

Merci d'avance.
 

Dranreb

XLDnaute Barbatruc
Re : code gray et complément à 2

Bonsoir.
La voici :
VB:
Function Gray(ByVal B As Long) As Long
Gray = B Xor (B \ 2)
End Function
Dans une feuille mettez des 0 en A1:C1.
En A2 :
Code:
=A1+1
En B2 :
Code:
=Gray($A2)
En C2 :
Code:
=DECBIN($B2)
Et propagez tout ça vers le bas.

Edit. Bonjour.
Pour la conversion Inverse :
VB:
Function BinG(ByVal G As Long) As Long
Do: BinG = BinG Xor G: G = G \ 2: Loop Until G = 0
End Function
Quant au complément à 2 d'une valeur V <> 0, c'est 2^n-V avec n le nombre de bits désirés. Sur les 32 bits c'est une inversion de signe.
Mais pour les vérifications, la fonction DECBIN ne restitue pas bien les valeurs négatives. Alors utilisez ça :
VB:
Function TxtB(ByVal N As Long) As String
TxtB = N And 1: N = (N And &H7FFFFFFF) \ 2 Or &H40000000 And N < 0
Do While N > 0: TxtB = (N And 1) & TxtB: N = N \ 2: Loop
End Function
 
Dernière édition:

Discussions similaires

Réponses
50
Affichages
5 K

Statistiques des forums

Discussions
312 097
Messages
2 085 260
Membres
102 844
dernier inscrit
atori2