Ik heb in mijn C boek staan dat het maximum int getal 32758 is. Echter gaat dit type in de Borland Compiler veel hoger namelijk tot 2147473647, heeft dit te maken met dat Windows XP een 32 bit OS is en de Borland compiler int standaard op 32 bit heeft staan?
Yep.. afhankelijk van OS, architectuur, mischien zelfs wel van compiler...
Daarom hebben ze vaak ook constantes als MAX_INT, en functies als sizeOf. Je moet NOOIT ergens in je programma zo'n waarde hard coderen..
Daarom hebben ze vaak ook constantes als MAX_INT, en functies als sizeOf. Je moet NOOIT ergens in je programma zo'n waarde hard coderen..
Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'
Het hangt inderdaad van een aantal factoren af. De compiler speelt hier geloof ik een grote rol. Daarnaast zijn er ook nog types als long en short en signed en unsigned. Let daar ook op.Op donderdag 20 december 2001 16:13 schreef Janoz het volgende:
Yep.. afhankelijk van OS, architectuur, mischien zelfs wel van compiler...
Daarom hebben ze vaak ook constantes als MAX_INT, en functies als sizeOf. Je moet NOOIT ergens in je programma zo'n waarde hard coderen..
sterker nog, het enige dat vast staat is
sizeof (char) <= sizeof (short) <= sizeof (int) <= sizeof (long)
en sizeof (char) = 1
sizeof (char) <= sizeof (short) <= sizeof (int) <= sizeof (long)
en sizeof (char) = 1
Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.
natuurlijk hebben veel pakketten daar een oplossing voor.
Delphi heeft voor een integer altijd 32 bits...
Veel talen of tools definieren ook een int32 en int16 of zelfs een int8
Delphi heeft voor een integer altijd 32 bits...
Veel talen of tools definieren ook een int32 en int16 of zelfs een int8
Localhost, sweet localhost
Bijna compleet - sizeof(int) moet 2 zijn vanwege EOF, wat een int is ongelijk aan alle chars - dus er zijn meer ints dan chars.Op donderdag 20 december 2001 17:38 schreef OiSyN het volgende:
sterker nog, het enige dat vast staat is
sizeof (char) <= sizeof (short) <= sizeof (int) <= sizeof (long)
en sizeof (char) = 1
Dus ook nog sizeof (char) < sizeof (int)
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Het laatste - ook in DOS mag int 32 bits zijn. Het boek zal wel 32767 hebben bedoeld, 2^15-1, omdat een int tenminste 16 bits moet hebben waarvan een sign-bit.Op donderdag 20 december 2001 16:11 schreef reetkever41 het volgende:
Ik heb in mijn C boek staan dat het maximum int getal 32758 is. Echter gaat dit type in de Borland Compiler veel hoger namelijk tot 2147473647, heeft dit te maken met dat Windows XP een 32 bit OS is en de Borland compiler int standaard op 32 bit heeft staan?
Dus als programmeur mag je er niet op rekenen dat 40000 in een int past. Daarvoor heb je long, die is altijd en overal tenminste 32 bits.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Sterker nog, doorgaans zijn alle compilers onder DOS (die dos ook dos progs compileren en geen 32bit code) en onder WIndows 3.x allemaal aan het uitgaan van een integer die 16 bits groot is. Zodra je te maken krijgt met compilers die protected mode code kunnen compileren (dus native 32 bit applicaties) zijn de compilers aan het uitgaan van 32 bit integers (ben namelijk zelf ooit in het grijze verleden) tegen deze gein aangelopen.
Ligt er maar aan hoe een INT gedefinieerd is. Wat jij beschrijft (32768) is een Signed 16-bit integer (15 bits voor het getal, 1 bit voor sign). Een Unsigned 16-bit integer kan 65536 groot zijn (2^16). Afhankelijk van de standaard wordlengte van je machine / compiler kan dat oplopen tot 4294967296 (unsigned 32-bit int, 2^32) of 18446744073709551616 (unsigned 64-bit int, 2^64). Over het algemeen is een INT echter 16-bits (1 Word, 2 Bytes). Wordt het langer, dan heet het een Long Int (2 word, 4 bytes, 32 bits) en nog langer een quad (4 words, 8 bytes, 64 bits)
Nothing is a problem once you've debugged the code
Pagina: 1