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 HP
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