Option Explicit Public Const Charset As String = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ" Public Function NumToBase(Number As Integer, Base As Byte) As String Dim Rest As Integer, Result As String If Base > 36 Then Exit Function Do Rest = Number Mod Base Number = Number \ Base Result = Mid(Charset, Rest + 1, 1) & Result Loop While Number > 0 NumToBase = Result End Function
Private Function stock_mod(ByVal nb As Integer) As String stock_mod = nb Mod 2 End Function dd = n Mod 2 Do If n Mod 2 <> 0 Then 'je test ici avant de faire la division si 'le nombre est paire ou impaire si oui : res = n / 2 - 0.5 'je soustrai le 0,5 qui me pose un probleme Else 'sinon pas de probleme si c'est un paire : res = n / 2 End If d = stock_mod(res) dd = dd & d n = res Loop Until res = 1 ReDim t(Len(dd)) For i = 1 To Len(dd) t(i) = Mid(dd, i, 1) Next For i = Len(dd) To 1 Step -1 m = m & t(i) Next
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionTextBox3.Text = m
If n Mod 2 <> 0 Then 'je test ici avant de faire la division si 'le nombre est paire ou impaire si oui : res = n / 2 - 0.5 'je soustrai le 0,5 qui me pose un probleme Else 'sinon pas de probleme si c'est un paire : res = n / 2 End IfDevient ceci (+ court et rapide)
res = n \ 2Et ton code tout entier est MAUVAIS : essaie de convertir 225 (11100001b) et tu t'apercevras qu'il y a un gros problème dans ton algo ! Je ne sais pas quoi te donner après la solution ...
dd = dd & d n = res Loop Until res = 1 ReDim t(Len(dd)) For i = 1 To Len(dd) t(i) = Mid(dd, i, 1) Next For i = Len(dd) To 1 Step -1 m = m & t(i) NextEn ceci :
dd = d & dd n = res Loop Until res = 1 m = dd
ReDim t(Len(dd)) For i = 1 To Len(dd) t(i) = Mid(dd, i, 1) Next For i = Len(dd) To 1 Step -1 m = m & t(i) Next
dd = d & dd n = res Loop Until res = 1 m = dd