Avatar billede tzr Nybegynder
27. september 2001 - 18:33 Der er 14 kommentarer og
1 løsning

Integer

Jeg vil gerne have en integer variabel, men jeg vil gerne have det sådan at jeg selv kan bestemme hvormange bit (eller byte, ligemeget for mig) den skal være på. Altså at jeg kan ændre længden fra 32 bit til fx 512 bit bare ved at ændre en enkelt linie eller noget. Er det noget der kan lade sig gøre i C++ ? eller skal jeg indsætte en eller anden assembly kode for at få det til at virke, og hvis ja, hvilken ?

/Kenneth
Avatar billede mickni33 Nybegynder
27. september 2001 - 18:34 #1
kan du ikke bare konvertere den til en long
Avatar billede tzr Nybegynder
27. september 2001 - 18:39 #2
den har ikke nok bit, medmindre du kan få den til at bruge flere end de 32 den allerede bruger :)
Avatar billede mickni33 Nybegynder
27. september 2001 - 18:50 #3
hva med en unsigned long dvs kun positive tal , det var da et fandens stort tal du vil have frem, er det et program der udregner din løn :)
Avatar billede tzr Nybegynder
27. september 2001 - 18:56 #4
hehe, nej, det er det (desværre) ikke.
Jeg ved at unsigned long kan gå pænt højt. Men jeg skal faktisk bruge en unsigned 2048 bit integer, sådan at jeg kan regne med den uden besvær.
Avatar billede tzr Nybegynder
27. september 2001 - 23:48 #5
hmm, der må da være nogen der kender noget til det her
Avatar billede mickni33 Nybegynder
28. september 2001 - 08:14 #6
Det kan helt sikkert godt lade sig gøre i assemnler, ved dog ikke lige hvordan gider ikke finde mine gamle papire frem. For du kan jo skrive dine assembler kode direkte i c/c++ koden sådan her

asm{
    move dit, move dat
    store dit, store dat
}
Avatar billede jpk Nybegynder
28. september 2001 - 08:17 #7
Er du siker på at det er nødvendigt? Hvad er det du skal lave, om man må spørge?
Der findes ikke en std type eller lign., men du kan selv implementere en klasse der kan regne med vilkårlige store tal, se fx Java\'s BigInteger.
Det foregår således, at tallet er lagret i en streng (et tal pr. karakter). Du implementerer så de regneoperationer du har brug for...
Der er dog én ting du skal være opmærksom på, det er ikke IKKE hurtigt!!!
Avatar billede soepro Nybegynder
28. september 2001 - 14:20 #8
Du er nødt til at lave din egen data-klasse, hvor du overloader alle normale matematik-operatorer.
Avatar billede tzr Nybegynder
28. september 2001 - 14:20 #9
mickini33 >> Jeg ved det kan gøres med assembler, me ser du, jeg aner minus til assembler

jpk >> Det jeg vil have er en variabel ligesom integer og long, bare hvor jeg selv kan definere hvormange bit den skal være på. Den der med en class har jeg tænkt på, men det er ikke hurtig nok.
Avatar billede mickni33 Nybegynder
28. september 2001 - 15:54 #10
spørg soepro han er en haj til assembler :)
Avatar billede soepro Nybegynder
01. oktober 2001 - 11:28 #11
mickni33 >> 1000 tak for tilliden - men assembler er jeg s.. ikke haj til - jeg kan blot finde ud af at skrive den kode af jeg finder hist og her. ;-)
Avatar billede mickni33 Nybegynder
01. oktober 2001 - 11:33 #12
Aaaahh noget må du da kunne, Du svarer hver gang der er assambler på programmet.. Syntes selv at assembler er meget interresant giver mig snart i kast med det. Sidder lige nu og surfer efter noget toturial
Avatar billede range Nybegynder
03. oktober 2001 - 14:34 #13
Det kan være, at det her link kan hjælpe http://www.purdue.edu/PUCC/Short-Courses/c.files/p_05080.html ... jeg kigger lige efter om, der findes en egentlig implementering :-)

/range
Avatar billede range Nybegynder
03. oktober 2001 - 14:37 #14
Det ser ud til at en implementering ligger her: http://www.purdue.edu/PUCC/Short-Courses/c.files/p_05082.html

/range
Avatar billede chime9 Nybegynder
12. oktober 2001 - 16:05 #15
Fint hint fra range. Su kan også bruge Integer klassen fra g++ librariet MIRACL eller ...
Brug Google - søg efter \"multiprecision integer c++\".
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester