anoniem Geplaatst: 5 september 2003 Delen Geplaatst: 5 september 2003 Oke... Moet de programmeur in het huidige tijdperk nog een Integer gebruiken?? Processorkracht genoeg toch? En een Integer loopt maar van -32000 t/m 32000... wat als ik een For i = 1 to n doe, en n > 32000 ?? Dus... waar 't op neer komt... Heeft 't nog nut om een variabele als Integer te declaren, of kan men gewoon meteen voor de Long gaan? :) Grtz Quote Link naar reactie
anoniem Geplaatst: 5 september 2003 Auteur Delen Geplaatst: 5 september 2003 Kort samengevat: Ja. Het heeft zeker nut om iets als int te declareren. Sterker nog, zelfs short kan heel goed zijn. Als je van te voren weet dat een variable nooit een grotere waarde krijgt dan iets moet je altijd het kleinst mogelijk type kiezen. Als je met grotere projecten aan de slag gaat, dan scheelt dat grote hoeveelheden RAM. Quote Link naar reactie
anoniem Geplaatst: 5 september 2003 Auteur Delen Geplaatst: 5 september 2003 Integer gaat toch veel verder? In Delphi is hij veel groter, namelijk: -2147483648 t/m 2147483647. De integer is dan vast kleiner in de taal die je bedoelt? Quote Link naar reactie
anoniem Geplaatst: 5 september 2003 Auteur Delen Geplaatst: 5 september 2003 Dat is een longint idd een gewonde integer (signed dus) is 16bits, dus van -32768 tot 32768 (lijkt me, iets minder waarschijnlijk, moet ook nog een 0 bij) een unsigned integer is 15bits, van 0 tot 32768 een longint is 32bits, dus van -2147483648 tot 2147483648 een unsigned longint is 31bits, dus van 0 tot 2147483648. de '-' neemt nl ook één bit in beslag... mogelijk is mijn verhaal van de unsigned niet helemaal correct, het kan ook zijn dat deze 2x zo groot mag zijn... Quote Link naar reactie
anoniem Geplaatst: 5 september 2003 Auteur Delen Geplaatst: 5 september 2003 [quote:e74530b534="webspider"] mogelijk is mijn verhaal van de unsigned niet helemaal correct, het kan ook zijn dat deze 2x zo groot mag zijn...[/quote:e74530b534] Idd, het "teken"-bit is immers beschikbaar. Quote Link naar reactie
anoniem Geplaatst: 6 september 2003 Auteur Delen Geplaatst: 6 september 2003 Wat is eigenlijk precies het verschil tussen signed en unsigned? Quote Link naar reactie
anoniem Geplaatst: 6 september 2003 Auteur Delen Geplaatst: 6 september 2003 signed is dat er ook negatieve waarden opgeslagen kan worden. In Delphi bijv heb je shortInt en Byte. Allebei dezelfde groote, alleen kan shortInt van -128 tot +127 gaan ofzo, en byte tot +255. Quote Link naar reactie
anoniem Geplaatst: 6 september 2003 Auteur Delen Geplaatst: 6 september 2003 ShortInt is dus signed en Byte is unsigned? 8) Quote Link naar reactie
anoniem Geplaatst: 6 september 2003 Auteur Delen Geplaatst: 6 september 2003 Ja in C++ zet je er gewoon unsigned achter :-) Quote Link naar reactie
anoniem Geplaatst: 6 september 2003 Auteur Delen Geplaatst: 6 september 2003 En bijvoorbeeld Cardinal is unsigned 32 bit, dus 0 t/m 4294967295. Er is ook een Int64 in Delphi, die is signed 64 bit. Bestaat er dan geen unsigned 64 bit? Quote Link naar reactie
anoniem Geplaatst: 20 september 2003 Auteur Delen Geplaatst: 20 september 2003 Indien dit gewoon een eenvoudig progje is kun je inderdaad beter de long nemen, maar gaat het om een ingewikkeld prog(bijv. een emulator) en je weet zeker dat de waarde niet te hoog wordt, dan zou ik in verband met de snelheid toch zeker een integer nemen... Quote Link naar reactie
anoniem Geplaatst: 20 september 2003 Auteur Delen Geplaatst: 20 september 2003 het is zoizo een goede programmeerstijl om het kleinst mogelijke variablegrootte te gebruiken. Ik ken iemand en hij heeft een programma gemaakt voor het onthouden van verjaardagen. Hij had 10 invoervelden gemaakt voor verjaardagen (dus je weet... er kunnen niet meer dan 10 personen komen). Maar hij heeft voor de index toch int64 gebruikt. Dat kan toch gewoon geen efficiente manier van programmeren zijn? Nu heeft hij versie 2.0 uitgebracht, en daar kan je een paar duizend miljoen verjaardagen toevoegen. Niemand heeft zoveel/vrienden contacten. Dan zou hij net zo goed byte (0 tot 255) of zelfs word kunnen gebruiken (0 tot 65535). Quote Link naar reactie
anoniem Geplaatst: 20 september 2003 Auteur Delen Geplaatst: 20 september 2003 [quote:8323ad930e="microchip"]het is zoizo een goede programmeerstijl om het kleinst mogelijke variablegrootte te gebruiken. Ik ken iemand en hij heeft een programma gemaakt voor het onthouden van verjaardagen. Hij had 10 invoervelden gemaakt voor verjaardagen (dus je weet... er kunnen niet meer dan 10 personen komen). Maar hij heeft voor de index toch int64 gebruikt. Dat kan toch gewoon geen efficiente manier van programmeren zijn? [/quote:8323ad930e] Om efficientie redenen kan het soms beter zijn om een andere variabelegrootte te gebruiken. Meestal lost de compiler dit soort problemen op. [quote:8323ad930e="microchip"] Nu heeft hij versie 2.0 uitgebracht, en daar kan je een paar duizend miljoen verjaardagen toevoegen. Niemand heeft zoveel/vrienden contacten. Dan zou hij net zo goed byte (0 tot 255) of zelfs word kunnen gebruiken (0 tot 65535).[/quote:8323ad930e] Daar ben ik het niet mee eens. Denk aan het [i:8323ad930e]"Year-2000"[/i:8323ad930e] probleem... Bill Gates: 640 kB ... We hebben genoeg IP adressen... etc. Of het moet op commercieel gebied gaan om een [url=http://www.google.nl/search?q=salami+tactiek]salami tactiek[/url] Quote Link naar reactie
anoniem Geplaatst: 20 september 2003 Auteur Delen Geplaatst: 20 september 2003 Ik zeg dat je goed moet uitstippelen welke waardes zouden kunnen gebruikt worden voordat je een variable defineert. Dat probeer ik met mijn voorbeeld duidelijk te maken. Quote Link naar reactie
anoniem Geplaatst: 20 september 2003 Auteur Delen Geplaatst: 20 september 2003 Aansluitend bij wat h4xX0r impliciet al noemde: afhankelijk van het systeem dat je gebruikt, kan het juist heel goed zijn om altijd 32-bit vars te gebruiken en geen 8- of 16-bit, ook al lijkt dat logischer gezien de maximale waarde die je erin stop. De hedendaagse Pentium, bijvoorbeeld, is geoptimaliseerd voor 32 bit (dus: gebruik een int), en een short vertraagd het programma dan ook. Quote Link naar reactie
anoniem Geplaatst: 21 september 2003 Auteur Delen Geplaatst: 21 september 2003 Daar wil ik wel meer van weten. Bedoel je daarmee dat als een 32 bit processor 8 of 16 bit variablen te verwerken krijgt, dat dan een deel van de rekenkracht niet benut wordt? En is dat dan zodanig dat het geheugen dat je bespaart het niet waard maakt? Quote Link naar reactie
anoniem Geplaatst: 21 september 2003 Auteur Delen Geplaatst: 21 september 2003 Ja en nee. Zie bijvoorbeeld de Coding Techniques van Intel: http://x86.ddj.com/ftp/manuals/686/iatips.pdf (maar er bestaan meerdere referenties). Quote: "In a 32-bit applications, using a short as a part of a loop will cause size override prefixes to be incorporated. These overrides take longer to fetch, decode and execute. ALWAYS use 32 bit integers as loop variables -- your software will run faster." Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen