Alors la je sentirais une pointe d'agréssivité, que ça m'étonnerait pas
Bon puisque tu joue sur les mots, moi j'en sais rien que c'est pas ASCII que ça s'appelle.
Tout ce que je sais c'est que le nombre de caractere descend plus la base est grande, na !
Le probleme c'est que j'ai pas assez de caracteres pour avoir une grande base, je suis arrivé à 115 avec peine pour ne pas utiliser des caracteres trop speciaux.
Bon puisque tu perd ton temps, je vais t'en faire gagner, voila avec quel code je converti, c'est un code originaire de AlGonzales que j'ai modifié en base62, et qui avait été corrigé par LNA
Code : Tout sélectionner
; http://www.purebasic.fr/english/viewtopic.php?t=9617&highlight=convert+base
; Code de AlGonzales modifié en base 62 par KCC
#BASEMIN = 2
#BINBASE = 2
#OCTBASE = 8
#HEXBASE = 16
#TRENTESIXBASE = 36
#SOIXANTEDEUXBASE = 62
Procedure.s Int2Base(Value.l, Base.l)
Protected Result.s
If (Base >= #BASEMIN) And (Base <= #SOIXANTEDEUXBASE)
Protected i.l
Repeat
i = (Value % Base) + 1
Value = (Value / Base)
Result = Mid("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", i, 1) + Result
Until Value = 0
EndIf
ProcedureReturn Result
EndProcedure
Procedure.l Base2Int(Value.s, Base.l)
Protected Result.l
Result = 0
If (Base >= #BASEMIN) And (Base <= #SOIXANTEDEUXBASE)
Protected i.l, c.l
For i = 1 To Len(Value)
c = FindString("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", Mid(Value, i, 1), 1)
; Return -1 If character is not supported by base
If c > Base
Result -1
Break
EndIf
Result = (Result * Base) + (c - 1)
Next i
EndIf
ProcedureReturn Result
EndProcedure
Procedure.s ConvertEnASCII(PhraseACoder.s)
PhraseASCII.s
For i = 1 To Len(PhraseACoder)
NombreASCII.l = Asc(Mid(PhraseACoder, i, 1))
PhraseASCII + Str(NombreASCII)
Next
ProcedureReturn PhraseASCII
EndProcedure
i = Val(ConvertEnASCII("Ra55"))
Bin.s = Int2Base(i, #BINBASE)
Oct.s = Int2Base(i, #OCTBASE)
Dec.s = Str(i)
Hex.s = Int2Base(i, #HEXBASE)
B62.s = Int2Base(i, #SOIXANTEDEUXBASE)
Debug "Ascii = " + Str(i)
Debug "Bin or Base 2 = " + Bin
Debug "Oct or Base 8 = " + Oct
Debug "Dec or Base 10 = " + Dec
Debug "Hex or Base 16 = " + Hex
Debug "Base 62 = " + B62
Debug ""
Debug ""
Debug "Bin or Base 2 = " + Str(Base2Int(Bin, #BINBASE))
Debug "Oct or Base 8 = " + Str(Base2Int(Oct, #OCTBASE))
Debug "Dec or Base 10 = " + Dec
Debug "Hex or Base 16 = " + Str(Base2Int(Hex, #HEXBASE))
Debug "Base 62 = " + Str(Base2Int(B62, #SOIXANTEDEUXBASE))
Bon alors tu appelle ça des bits, de l'ascii, des octets, du justin bridou enfin ce que tu veux, mais tu ne peux pas dire que les caracteres ne réduisent pas
Je vais t'en donner une encore plus drole, en base 115, ça donne "6Vy" donc 3 caracteres, et la on est à moins de caracteres que la phrase du debut.
Et j'ai remarqué que quand on montait d'une base avec un chiffre de plus, on reduisait le chiffre "basé" d'un chiffre aussi".
C'est à dire que si j'arrivais a faire une base 100000, peut etre que j'aurais qu'un caractere
Ce doit etre logique pour vous les matheux
Bon alors, peut etre que j'ai pas utilisé les bons mots, mais le code ci dessus, y code et réduis le nombre de caracteres et apres il rammene tout comme c'etait, donc il ne perd rien en route non ????
Bon alors qui c'est qui dit des conneries
