Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" a écrit dans le
message
de news:Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Mesemble que fondamentalement cela passe par un entier codé sur je
pense
64bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus
tard.
Maislà j'ai une affaire urgente qui m'attend. (Trouver le moyen de
"sortir"
unephoto numérique et de l'envoyer au plus sacrant.)
"garnote" a écrit dans le message de news:Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" <clement.marcotte@sympatico.ca> a écrit dans le
message
de news: uHDd6YBXGHA.3448@TK2MSFTNGP03.phx.gbl...
Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Me
semble que fondamentalement cela passe par un entier codé sur je
pense
64
bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus
tard.
Mais
là j'ai une affaire urgente qui m'attend. (Trouver le moyen de
"sortir"
une
photo numérique et de l'envoyer au plus sacrant.)
"garnote" <rien@absent.com> a écrit dans le message de news:
e3bEsYAXGHA.1084@TK2MSFTNGP04.phx.gbl...
Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" a écrit dans le
message
de news:Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Mesemble que fondamentalement cela passe par un entier codé sur je
pense
64bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus
tard.
Maislà j'ai une affaire urgente qui m'attend. (Trouver le moyen de
"sortir"
unephoto numérique et de l'envoyer au plus sacrant.)
"garnote" a écrit dans le message de news:Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
Mais que fait donc p.gif (952 octets) dans mon message précédent ?
Je n'ai rien joint, moé !
Serge
"garnote" a écrit dans le message de news:Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" a écrit dans le
messagede news:Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Mesemble que fondamentalement cela passe par un entier codé sur je
pense64bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus
tard.Maislà j'ai une affaire urgente qui m'attend. (Trouver le moyen de
"sortir"unephoto numérique et de l'envoyer au plus sacrant.)
"garnote" a écrit dans le message de news:Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Mais que fait donc p.gif (952 octets) dans mon message précédent ?
Je n'ai rien joint, moé !
Serge
"garnote" <rien@absent.com> a écrit dans le message de news:
e5NlTuBXGHA.2356@TK2MSFTNGP03.phx.gbl...
Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" <clement.marcotte@sympatico.ca> a écrit dans le
message
de news: uHDd6YBXGHA.3448@TK2MSFTNGP03.phx.gbl...
Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Me
semble que fondamentalement cela passe par un entier codé sur je
pense
64
bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus
tard.
Mais
là j'ai une affaire urgente qui m'attend. (Trouver le moyen de
"sortir"
une
photo numérique et de l'envoyer au plus sacrant.)
"garnote" <rien@absent.com> a écrit dans le message de news:
e3bEsYAXGHA.1084@TK2MSFTNGP04.phx.gbl...
Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Mais que fait donc p.gif (952 octets) dans mon message précédent ?
Je n'ai rien joint, moé !
Serge
"garnote" a écrit dans le message de news:Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" a écrit dans le
messagede news:Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Mesemble que fondamentalement cela passe par un entier codé sur je
pense64bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus
tard.Maislà j'ai une affaire urgente qui m'attend. (Trouver le moyen de
"sortir"unephoto numérique et de l'envoyer au plus sacrant.)
"garnote" a écrit dans le message de news:Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" a écrit dans le
message de news:Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Mesemble que fondamentalement cela passe par un entier codé sur je pense
64bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus tard.
Maislà j'ai une affaire urgente qui m'attend. (Trouver le moyen de "sortir"
unephoto numérique et de l'envoyer au plus sacrant.)
"garnote" a écrit dans le message de news:Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" <clement.marcotte@sympatico.ca> a écrit dans le
message de news: uHDd6YBXGHA.3448@TK2MSFTNGP03.phx.gbl...
Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Me
semble que fondamentalement cela passe par un entier codé sur je pense
64
bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus tard.
Mais
là j'ai une affaire urgente qui m'attend. (Trouver le moyen de "sortir"
une
photo numérique et de l'envoyer au plus sacrant.)
"garnote" <rien@absent.com> a écrit dans le message de news:
e3bEsYAXGHA.1084@TK2MSFTNGP04.phx.gbl...
Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" a écrit dans le
message de news:Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Mesemble que fondamentalement cela passe par un entier codé sur je pense
64bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus tard.
Maislà j'ai une affaire urgente qui m'attend. (Trouver le moyen de "sortir"
unephoto numérique et de l'envoyer au plus sacrant.)
"garnote" a écrit dans le message de news:Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
Bonjour,
Je prend pour acquis que tu as vérifié ta réponse...
"garnote" a écrit dans le message de news:Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" a écrit dans le
message de news:Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Mesemble que fondamentalement cela passe par un entier codé sur je pense
64bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus
tard. Maislà j'ai une affaire urgente qui m'attend. (Trouver le moyen de
"sortir" unephoto numérique et de l'envoyer au plus sacrant.)
"garnote" a écrit dans le message de news:Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
Bonjour,
Je prend pour acquis que tu as vérifié ta réponse...
"garnote" <rien@absent.com> a écrit dans le message de news:
e5NlTuBXGHA.2356@TK2MSFTNGP03.phx.gbl...
Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" <clement.marcotte@sympatico.ca> a écrit dans le
message de news: uHDd6YBXGHA.3448@TK2MSFTNGP03.phx.gbl...
Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Me
semble que fondamentalement cela passe par un entier codé sur je pense
64
bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus
tard. Mais
là j'ai une affaire urgente qui m'attend. (Trouver le moyen de
"sortir" une
photo numérique et de l'envoyer au plus sacrant.)
"garnote" <rien@absent.com> a écrit dans le message de news:
e3bEsYAXGHA.1084@TK2MSFTNGP04.phx.gbl...
Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------
Bonjour,
Je prend pour acquis que tu as vérifié ta réponse...
"garnote" a écrit dans le message de news:Ça y est, j'ai trouvé un truc pour binairer
de gros nombres. C'est n Mod 2 et n 2
de VBA qui causaient problème. Ils ne veulent
rien savoir si n > 2 ^31.
Mais en remplaçant n Mod 2 par n - 2 * Int ( n / 2)
et n 2 par Int (n / 2), ça fonctionne.
binaire(999999999999999) renvoie
11100011010111111010100100110001100111111111111111
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = Int(n / 2)
b(0) = n - 2 * Int(n / 2)
For i = 1 To k
b(i) = pe(i - 1) - 2 * Int(pe(i - 1) / 2)
pe(i) = Int(pe(i - 1) / 2)
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
"Clément Marcotte" a écrit dans le
message de news:Bonjour,
Va peut-être falloir que t'aille zigonner un peu avec le type
"Currency". Mesemble que fondamentalement cela passe par un entier codé sur je pense
64bits.
Avec un peu de chance, m'a pouvoir essayer de creuser un peu plus
tard. Maislà j'ai une affaire urgente qui m'attend. (Trouver le moyen de
"sortir" unephoto numérique et de l'envoyer au plus sacrant.)
"garnote" a écrit dans le message de news:Bonjour mes vous tous et toutes,
Voici une tite macro qui transforme un nombre
entier positif en binaire. Elle devient incompétente
à partir de ce nombre : 2 147 483 648.
Pourquoi lui plutôt qu'un autre ?
Pourrions-nous aller plus loin ?
J'utilise un Excel qui ne contient pas la fonction DECBIN.
Quel est le plus grand nombre entier que
DECBIN peut écrire en binaire ?
Merci,
Serge
Function binaire(n As Double) As String
'Convertit un nombre entier positif
'en binaire.
Dim b(), pe()
Dim nb As String, arrêt As String
Do Until arrêt = "oui"
i = i + 1
If 2 ^ i > n Then arrêt = "oui"
Loop
k = i - 1
ReDim b(k)
ReDim pe(k)
pe(0) = n 2
b(0) = n Mod 2
For i = 1 To k
b(i) = pe(i - 1) Mod 2
pe(i) = pe(i - 1) 2
Next i
For i = k To 0 Step -1
nb = nb & b(i)
Next i
binaire = nb
End Function
--------------------------------------------------------------------------------