Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Convertir un nombre en binaire 0 et 1

5 réponses
Avatar
Versatile
Bonjour,
Pour les pros de la programmation, comment convertir le plus
efficacement (le plus rapidement) un nombre de type LONG par exemple
(donc 32 bits) en son =E9quivalent binaire 0011100..., bref en une
succession de 0 et 1 stock=E9s dans une cha=EEne de caract=E8re ?
Il doit bien y avoir un raccourci.
Merci beaucoup pour l'info.

5 réponses

Avatar
JB
Bonjour,

Il y a la fonction DecBin() avec la macro-comp Utilitaire/Analyse

Fonction perso: convertit base 10 en base b ( jusqu'à 32)

ºse(2;A1)

Function Base(b, n)
Do While n >= b
result = Mid("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", IIf(n Mod b

0, (n Mod b) + 1, 1), 1) & result

n = n b
Loop
Base = Mid("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ", IIf(n Mod b > 0,
(n Mod b) + 1, 1), 1) & result
End Function

JB





On 26 sep, 11:48, Versatile wrote:
Bonjour,
Pour les pros de la programmation, comment convertir le plus
efficacement (le plus rapidement) un nombre de type LONG par exemple
(donc 32 bits) en son équivalent binaire 0011100..., bref en une
succession de 0 et 1 stockés dans une chaîne de caractère ?
Il doit bien y avoir un raccourci.
Merci beaucoup pour l'info.


Avatar
Daniel.C
Bonjour.
MS a mis en ligne cette fonction :

Function baseconv(InputNum, BaseNum)
Dim quotient, remainder As Single
Dim answer As String
quotient = InputNum
remainder = InputNum
answer = ""
Do While quotient <> 0
remainder = quotient Mod BaseNum
quotient = Int(quotient / BaseNum)
answer = remainder & answer
Loop
baseconv = Val(answer)
End Function

Cordialement.
Daniel
"Versatile" a écrit dans le message de news:

Bonjour,
Pour les pros de la programmation, comment convertir le plus
efficacement (le plus rapidement) un nombre de type LONG par exemple
(donc 32 bits) en son équivalent binaire 0011100..., bref en une
succession de 0 et 1 stockés dans une chaîne de caractère ?
Il doit bien y avoir un raccourci.
Merci beaucoup pour l'info.
Avatar
JB
Bonjour,

Ne fonctionne que pour les entiers <32768.

JB
On 26 sep, 12:28, "Daniel.C" wrote:
Bonjour.
MS a mis en ligne cette fonction :

Function baseconv(InputNum, BaseNum)
Dim quotient, remainder As Single
Dim answer As String
quotient = InputNum
remainder = InputNum
answer = ""
Do While quotient <> 0
remainder = quotient Mod BaseNum
quotient = Int(quotient / BaseNum)
answer = remainder & answer
Loop
baseconv = Val(answer)
End Function

Cordialement.
Daniel
"Versatile" a écrit dans le message de news:

Bonjour,
Pour les pros de la programmation, comment convertir le plus
efficacement (le plus rapidement) un nombre de type LONG par exemple
(donc 32 bits) en son équivalent binaire 0011100..., bref en une
succession de 0 et 1 stockés dans une chaîne de caractère ?
Il doit bien y avoir un raccourci.
Merci beaucoup pour l'info.


Avatar
Daniel.C
Bonjour.
Uniquement pour ce qui est de la base 2. On attend alors la limite des
quinze chiffres. Je pense que ta fonction réagit de la même façon, ou bien
elle fournit une chaîne texte.
Daniel
"JB" a écrit dans le message de news:

Bonjour,

Ne fonctionne que pour les entiers <32768.

JB
On 26 sep, 12:28, "Daniel.C" wrote:
Bonjour.
MS a mis en ligne cette fonction :

Function baseconv(InputNum, BaseNum)
Dim quotient, remainder As Single
Dim answer As String
quotient = InputNum
remainder = InputNum
answer = ""
Do While quotient <> 0
remainder = quotient Mod BaseNum
quotient = Int(quotient / BaseNum)
answer = remainder & answer
Loop
baseconv = Val(answer)
End Function

Cordialement.
Daniel
"Versatile" a écrit dans le message de news:

Bonjour,
Pour les pros de la programmation, comment convertir le plus
efficacement (le plus rapidement) un nombre de type LONG par exemple
(donc 32 bits) en son équivalent binaire 0011100..., bref en une
succession de 0 et 1 stockés dans une chaîne de caractère ?
Il doit bien y avoir un raccourci.
Merci beaucoup pour l'info.


Avatar
Versatile
Function baseconv(InputNum, BaseNum)
Dim quotient, remainder As Single
Dim answer As String
quotient = InputNum
remainder = InputNum
answer = ""
Do While quotient <> 0
remainder = quotient Mod BaseNum
quotient = Int(quotient / BaseNum)
answer = remainder & answer
Loop
baseconv = Val(answer)
End Function



cette fonction est assez géniale, merci beaucoup.