Jag har skrivit samma fråga 3 ggr nu men jag får inget vettigt svar... Siffersträng vad menar du då ? Självklart en numerisk variabel ... Vad skulle jag ha en sträng med siffror till? det du kan göra är att andå fasten du inte vill använde en sträng Hej Hej Det enda jag vet är att man istället för att använda redan befintliga variabeltyper kan genom att allokera eget minne göra gigantiska siffersträngar. Hej Som jag skrivit tidigare kan du göra så här...... Jag förstår precis vad du menar men jag VILL inte MULTIPLICERA variablerna med varandra, jag vill bara ha en lång variabel som jag ska använda på ett helt annat sätt ... Tips Ja vill du bara göra en enda lång siffersträng så är det bara att addera Räcker det med 64bitars integer? Jag tror mer att han är ute efter riktigt stora tal, han surrar ju om kryptering och så.En sista chans
Kanske beror på formuleringen iofs...
Skit samma!
OK, här kommer den en sista gång:
Jag vill göra en siffersträng som är längre än en double, man kan göra det .... Det gör dom i stora krypteringsprogram, men det jag vill veta är: HUR???
Allokera eget minne...?Sv: En sista chans
En textsträng med siffror i eller ett antal siffror som du vill ha i en numerisk variabel ?
Om det är en strängvariabel så kan man lagra alla tecken i den inklusive siffror.
En numersik variabel klarar endast 0-9 och i vissa fall tecken.
Numersika variabler går att utföra beräkningar med men strängvariabelr går ej att beräkna utan måste omvandalas först.
I grund och botten hanteras ju detta vi binära represntationer i olika längder. enkel byte, dubbel byte osv.
Hoppas jag inte blev för grundläggande men en bra grund behövs för att kunna svara på frågan.
/RolandSv: En sista chans
Hmm...
och sedan ta lite hjälp av val(). typ så här ;)
dim långtvärde as string
långtvärde = 78940358943690647534...........
långtvärde = val(långtvärde) * 55
'Långtvärde borde du nu kunna lagra ganska så stora tal i dock
'lite pilligt att aldrig glömma skriva val innan.
'borde funka har inget vb här nu.
'Men dock inte tillräckligt snabbt för att kryptera med ;(Sv: En sista chans
Kanske inte så mycket tröst för dig men det bör ju
gå att fixa. I Delphi har vi en datatyp extended som
kan innehålla 19 siffror + ett eventuellt minustecken dvs 20 tecken.
Man skulle alltså kunna använda en Delphi dll.
mvh
SvenSv: En sista chans
Motsvarande för Extended i Delphi 4932 värdesiffror. Dvs 10 byte,Double 8 Byte
Men nu blir det lite snurr i skallen är detta relevant i detta exempel ?
Med Double kan man skriva 15 signifikanta siffror
Med Extended " 19 "
undrar
SvenSv: En sista chans
Vissa krypteringsprogram använder variabler med typ tvåtusen siffror som de multiplicerar med varandra för att göra det så omöjligt som det går att knäcka koden...
Det är det jag vill åstadkomma här ... GÖRA gigantiska numeriska variabler....
förstår ni?Sv: En sista chans
Såvitt jag förstår så skall du använda en ByteArray
Dim KryArray(2000) As Byte
Nu kan du ladda denna array med 2001 enskilda siffror.
DSSv: En sista chans
Option Explicit
Private Sub Command1_Click()
Dim tal1 As String
Dim tal2 As String
Dim tal3 As String
tal1 = "9872435987345987345987345987345987345987345987345"
tal2 = "9873458973459873458973862456448763459873456753265"
tal3 = multiplicera(tal1, tal2)
End Sub
Private Sub multiplicera(t1 As String, t2 As String)
'// Här skriver du en funktion som multiplicerar dina tal
'// Den algoritmen gör du busenkelt om du tänker hur du
'// gör när du multiplicerar för hand på papper.
End Sub
/[peter.h]Sv: En sista chans
BTW.... I de programmen jag pratar om så skaffar de eget minne till numeriska variabler för att sedan låta processorn arbeta lite och sedan ... poff
översätt en fil till ascii-kod och spara ned den i en numerisk variabel så förstår ni vilken storlek jag vill ha på denSv: En sista chans
Byt programspråk. Det du beskriver är nog inget för Visual Basic att hantera.
Rekomendation är C, C++ eller Assembler.
Då kan du få full kontroll på variabelhanteringen.
/RolandSv: En sista chans
siffror till en sträng precis så många du vill ha tills du tröttnar.
Sen kan du göra vad du vill med den.
För att få ett bra svar krävs en bra fråga. Det har konstaterats förr.
I VB allokerar man inget minne som i C där man använder exvis
malloc och calloc. Här "dimmar" man variabler. Du får hålla dig till
de som finns per standrad.
Om inte dessa duger får man hitta en lösning på problemet.
Men kan man inte ställa en fråga så folk förstår så kan man inte
räkna med att få ett svar man förväntar heller.
/[peter.h]Sv: En sista chans
--------------------------------------------------------
Large Integer Operations
This overview describes the support for operations on large (64-bit) integers provided by the Microsoft® Win32® API.
Applications can multiply signed or unsigned 32-bit integers, generating 64-bit results, by using the Int32x32To64 and UInt32x32To64 functions. Applications can shift bits in 64-bit values to the left or right by using the Int64ShllMod32, Int64ShraMod32, and Int64ShrlMod32 functions. These functions provide logical and arithmetic shifting.
Applications can also multiply and divide 32-bit values in a single operation by using the MulDiv function. Although the result of the operation is a 32-bit value, the function stores the intermediate result as a 64-bit value, so that information is not lost when large 32-bit values are multiplied and divided.Sv: En sista chans
Så tal uppemot en 1024 bitar är nog vad han söker. Alltså 128 bytes.
/[peter.h]