jag skulle vilja konvertera en MD5 check-summa till decimal-tal (128 bits) Hej jag tror att du ska dela upp talentill enklare beräkningar ex Mitt förslag är att söka lite på Internet efter klasser som hanterar beräkningar med stora heltal. Söker du på google på "big integer class" så får du massor med träffar... Undrar om inte denna teknik kan vara inkörsport för lösning. Wow...en lösning värdig titeln HardCore (med ref till boken "Hardcore Visual Basic" av Bruce McKinney som är Hardcore-programmerarnas bibel)! Fattar inte om du driver med mig eller inte, lika bra detta ! "men om man adderar två 64 bits så kommer man upp i 128." Sven, "men om man adderar två 64 bits så kommer man upp i 128." Ok Vi måste kunna hantera stora tal.konvertera riktigt stora hex-decimala tal exakt
exempel:
MizardX blir bf3ee93e697c4ac56d40d170ce0a1abf
men jag skulle vilja ha det i decimal form, men kan inte få det särskillt exakt (skulle vilja ha med en-talen också)
lyckas bara få 2,54209200346378E+38 medans jag skulle vilja ha 254209200346378003680484086062886864488 (använde mIRC-funtionen $base för den)
edit:
för dom som undrar så är det till lösenordsverifikationen i msn messangerSv: konvertera riktigt stora hex-decimala tal exakt
16*16 16*16*16
16^2 16^3
256 4096
2*16 5*16 6*16
32 80 96
40 9 6
det du ser här är ett sådant försök dock i förminskad skala.
Med andra ord så blir svaret en massa integerSv: konvertera riktigt stora hex-decimala tal exakt
Alternativet är att du skriver en sådan själv, kortfattat måste du göra följande:
* Representera de stora talen med long-array, dvs arrayer med Long som datatyp och spara en del av värdet i varje element.
* Skriv funktioner för addition och multiplikation för dessa arrayer. Det borde räcka för att klara av hexadecimal->decimal konverteringen
* Skriv en funktion som gör om long-arrayen till en sträng innehållande talet i sin helhet så att du kan presentera det.
Det borde inte vara allt för svårt att knacka ihop det...Sv: konvertera riktigt stora hex-decimala tal exakt
Public Type LARGE_INTEGER
LowPart As Long
HighPart As Long
End Type
Public Declare Function QueryPerformanceFrequency Lib "kernel32.dll" _
(lpFrequency As LARGE_INTEGER) As Long
Public Declare Function QueryPerformanceCounter Lib "kernel32.dll" _
(lpPerformanceCount As LARGE_INTEGER) As Long
Public Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" _
(Destination As Any, Source As Any, ByVal Length As Long)
' Den här funktionen omvandlar LARGE_INTEGER strukture till
' VB's 64-bit Currency Data Type. För mer info
' http://www.vbapi.com/articles/64bit/index.html
Public Function LargeIntCurr(li As LARGE_INTEGER) As Currency
Dim temp As Currency
CopyMemory temp, li, 8
LargeIntCurr = temp
End FunctionSv: konvertera riktigt stora hex-decimala tal exakt
Dock tror jag inte att 64 bitar (currency) räcker för de stora tal som frågeställaren verkade vilja ha. Sen återstår ju problemet med att kunna multiplicera och addera med dessa tal, som krävs för att konvertera Hex->Dec, det lär ju inte fungera att addera resp multiplicera Currency-variablerna.
Men intressant! CopyMemory verkar vara Hardcore-kodarnas favoritfunktion :-)Sv: konvertera riktigt stora hex-decimala tal exakt
Stora tal är alltid knepigt, men om man adderar två 64 bits så kommer man upp i 128.
Har aldrig gjort anspråk på att komma med hela lösningen, men ett spår som Vi
säger inom spaning , är Guld värt. La Cure.
Min hemmaplanet ligger 4^2300 mil härifrån alpha i Centarion , de du ! 4 ljusår
Har märkt att Hultan är en av de skarpaste hjärnor Vi har här hos pelle, "of course"
Ett stort Tack till puman som tipsade om denna site
http://www-lexikon.nada.kth.se/cgi-bin/skolverket/sve-engSv: konvertera riktigt stora hex-decimala tal exakt
FEL!
Man kommer upp i 65 bitar, varken mer eller mindre!
Om du däremot multiplicerar två 64 bitars så blir det 128 bitar.Sv: konvertera riktigt stora hex-decimala tal exakt
Vi har haft några duster och det är ok, men jag driver inte alls med dig. I alla fall inte just i denna fråga...
Ditt svar i denna fråga var relevant och intressant. Ditt svar var Hardcore (enligt min definition på Hardcore som baseras på den bok jag nämnde) och därför gillade jag det.
Ditt svar gav dock bara ett förslag på hur man skulle kunna representera ett 64bits heltal på ett coolt (läs:hardcore) sätt. Jag ville utveckla det genom att påpeka att det krävs addition och multiplikation för att lösa problemet, och att det antagligen krävs mer än 64 bitar för att lösa problemet...Sv: konvertera riktigt stora hex-decimala tal exakt
FEL!
Man kommer upp i 65 bitar, varken mer eller mindre!
Nu har du varit duktig :-) Gå och Lägg Dig :-) :-)Sv: konvertera riktigt stora hex-decimala tal exakt
Jag tänker i ljussekunder , Till vår moder Solen är det 8 minuter.
Jag är facinerad av hur Vi kan tänka olika stora tal.Min MorFar tyckte att det
var långt till Malmö 23 km 23000 m mm. osv ångström Stora Tal :-)