01. oktober 2002 - 14:54
Der er
20 kommentarer og 1 løsning
Hvilken type variabel
Hvad gør man hvis en long ikke er stor nok, til at indeholde et tal???
Annonceindlæg fra DE-CIX
Edge computing: behandling ved kilden
Edge computing revolutionerer den måde, data behandles på, ved at bringe kapacitet og ydeevne tættere på dér, hvor der er behov for det.
15. april 2025
01. oktober 2002 - 14:57
#1
hvor stort skal tallet kunne være?
01. oktober 2002 - 14:59
#2
10^10
01. oktober 2002 - 14:59
#3
Hvis du bruger VC++ compileren, kan du bruge typen __int64, der som navnet siger, er en 64bit type...
01. oktober 2002 - 15:01
#4
Jeg bruger dev-c++
01. oktober 2002 - 15:10
#5
Hvis den ikke understøtter en type der kan klare det, har du 2 muligheder: 1) Implementér en klasse der kan 2) Find en på nettet Du kan evt. søge blandt tidligere svar, da det spørgsmål har været stillet flere gange før!
01. oktober 2002 - 15:13
#6
brug evt en "long long" (som faktisk er det samme som __int64 - også i dev-cpp)
01. oktober 2002 - 16:10
#7
soreno, jeg har prøvet long long. Men så kommer får jeg følgende fejl: C:\cpp\Tal\tal.cpp:37: integer constant out of range
01. oktober 2002 - 16:24
#8
01. oktober 2002 - 16:33
#9
01. oktober 2002 - 16:46
#10
www.jepser> prøv at poste linie ca. 30-40 stykker - så kan vi nemlig se i hvilken sammenhæng du får fejl :-)
01. oktober 2002 - 16:48
#11
01. oktober 2002 - 16:58
#12
soreno: det er vist bare fordi hans tal er for stort
01. oktober 2002 - 17:04
#13
jooow, måske - men antagelser er roden til alt ondt :-)
01. oktober 2002 - 17:10
#14
ja og ondskab er roden til alle antagelser :-)
01. oktober 2002 - 17:21
#15
soreno> tror altså det er mit tal der er for stort: 35: int main(int tal) { 36: int lavvar; 37: long hojeste = 10000000000; 38: float point; .... Tallene er ikke med i selve koden. Jeg er i gang med at kigge på de link jeg har fået, håber der er noget der virker.
01. oktober 2002 - 17:30
#16
et ciffer for meget :)
01. oktober 2002 - 18:00
#17
du skal gøre compileren opmærksom på at det er et stort tal: typedef unsigned long long int64; int main(int argc, char **argv) { int64 tal = 18446744073709551615LL; return 0; }
01. oktober 2002 - 18:24
#18
det dur skam
02. oktober 2002 - 19:33
#19
jeg har lavet følgende eksempel, som viser et eks. på brug af en 64 bit variable (og skriver det ud): #include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { unsigned long long tal; char temp[20]; while(true) { //læser et internt 64 bit register. //tallet tælles én op for hver clockcykle asm(".byte 0x0f, 0x31" : "=A" (tal)); _ui64toa(tal, temp, 10); printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b[%20s]", temp); _sleep(100); } return 0; }
03. oktober 2002 - 14:20
#20
soreno: smart! (specielt med det der assembly :o)
12. oktober 2002 - 15:42
#21
Hvis du bruger linux/unix så brug en variabel af typen "unsigned long long". I Windows kan du bruge en ULONGLONG eller en LARGE_INTEGER
Kurser inden for grundlæggende programmering