"Small minds discuss persons. Average minds discuss events. Great minds discuss ideas. Really great minds discuss mathematics."
Maar waarom raadpleeg je niet gewoon even Wikipedia
[ Voor 35% gewijzigd door RobIII op 03-12-2013 10:36 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Toch bedankt voor het antwoord :)!
"Small minds discuss persons. Average minds discuss events. Great minds discuss ideas. Really great minds discuss mathematics."
Hoe het wel zit staat wel in leesvoer, maar los daarvan: Kijk eens goed naar wat je hier zegt. Als een bit 2 opties heeft, heb je er met 32 bits uiteraard 2^32 mogelijkheden in totaal. Als jij 'tussen -2^32 en +2^32' zegt, hoe onthoud je dan of het een positief of negatief getal is?Tommienator schreef op dinsdag 03 december 2013 @ 10:26:
Ik weet dat een integer gebruikt wordt voor een geheel getal (als deze in 32 bit opgeslagen wordt dacht ik dat de verzameling gelegen is tussen -2^32 en +2^32)
{signature}
Laten we even vereenvoudigen.. Even overgaan naar 4-bit.. Rekent wat sneller en vlotter
Dus als ik het goed heb..
Als je in 4-bit werkt, heb je een verzameling gelegen tussen -8 en +7
en die kan worden voorgesteld (neem ik aan, even dan uit jouw antwoord en wat logisch redeneren
Klopt dit, want dan heb ik het door denk ik ^^...
"Small minds discuss persons. Average minds discuss events. Great minds discuss ideas. Really great minds discuss mathematics."
Ja dat klopt.Tommienator schreef op dinsdag 03 december 2013 @ 11:12:
Klopt volledig!
Laten we even vereenvoudigen.. Even overgaan naar 4-bit.. Rekent wat sneller en vlotter?
Dus als ik het goed heb..
Als je in 4-bit werkt, heb je een verzameling gelegen tussen -8 en +7
en die kan worden voorgesteld (neem ik aan, even dan uit jouw antwoord en wat logisch redeneren) -2^(4-1) <=n<=2^(4-1)-1?
Klopt dit, want dan heb ik het door denk ik ^^...
Nee dat klopt niet. je hebt aan beide kanten 7. Je hebt 4 bits tot je beschikking om een getal uit te drukken en het teken. Je teken, positief (1) of negatief (0) neemt 1 bit in. je houd dus nog 3 bits over waarin je maximaal 7 kan uitdrukken (111) dus je hebt een bereik van -7(0111) tot en met +7 (1111). Dus je uitdrukking mist aan de linker kant een -1. resultaat: -2^(4-1)-1 <=n<=2^(4-1)-1
[ Voor 6% gewijzigd door Ealanrian op 03-12-2013 11:25 . Reden: Iets met niet wakker, te weinig koffie en slecht nadenken ]
Omdat je niet zowel -0 als +0 hebt, gaat het negatieve bereik doorgaans eentje verder. Maar goed, dat staat op diverse plekken beter uitgelegd.
{signature}
Ik dacht nu toch echt dat 1 voor negatief stond, en 0 voor positief?
Dan kan bij
die -2^(4-1)-1 die -1 toch weg?resultaat: -2^(4-1)-1 <=n<=2^(4-1)-1
Dus dan klopt het wel neem ik aan?Voutloos schreef op dinsdag 03 december 2013 @ 11:22:
offtopic:
Omdat je niet zowel -0 als +0 hebt, gaat het negatieve bereik doorgaans eentje verder. Maar goed, dat staat op diverse plekken beter uitgelegd.
[ Voor 42% gewijzigd door Tommienator op 03-12-2013 11:23 ]
"Small minds discuss persons. Average minds discuss events. Great minds discuss ideas. Really great minds discuss mathematics."
BedanktEalanrian schreef op dinsdag 03 december 2013 @ 11:25:
Zoals Voutloos mooi aanwijst heb je geen -0 en +0. Ik ben nog niet wakker genoeg je had het wel goed door...
"Small minds discuss persons. Average minds discuss events. Great minds discuss ideas. Really great minds discuss mathematics."
RobIII schreef op dinsdag 03 december 2013 @ 10:31:
Een signed integer waar jij op doelt loopt van -231 tot 231-1.
Het is een klein beetje mierenneuken, maar die opmerkingen gelden alleen als de binaire representatie van integers in je C implementatie two's complement is. Bij one's complement of sign-magnitude loopt het bereik (bij 32 bit) van van -231+1 tot 231-1 en heb je zowel een +0 als -0. Zie bijvoorbeeld deze tabel op Wikipedia.Voutloos schreef op dinsdag 03 december 2013 @ 11:22:
Omdat je niet zowel -0 als +0 hebt, gaat het negatieve bereik doorgaans eentje verder. Maar goed, dat staat op diverse plekken beter uitgelegd.
En ja, dat zijn toegestane representaties in C
Het is ook een beetje mierenneuken dat een "integer" niet per definitie 32 bits is en zo kan ik nog wel 15 dingen verzinnen (bij wijze van) die niet opgaan als je niet een paar aannames doet (zoals ik er van uit ben gegaan dat men meestal op scholen leert dat een int 32 bits is, two's complement gebruikt wordt, uitgegaan wordt van little-endian etc. etc.). Hence de "waar jij op doelt" in mijn postdeadinspace schreef op dinsdag 03 december 2013 @ 13:03:
Het is een klein beetje mierenneuken
[ Voor 5% gewijzigd door RobIII op 03-12-2013 16:56 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Floats en doubles hebben een bepaalde structuur, met mantissa en exponent. In wetenschappelijke notatie heb je het over 1,42784*10^3, bijvoorbeeld. De mantissa is 1,42784, de exponent 3. Hiermee kan je zowel kleine getallen uitdrukken (bijvoorbeeld 5,4389^10^-20) als hele grote (bijvoorbeeld 3,489348*10^20. negatieve getallen kunnen natuurlijk ook. Je kan hiermee met relatief weinig decimalen toch een enorme range van getallen uitdrukken, groter dan met ints, maar je offert hier wel wat nauwkeurigheid voor op. Natuurlijk rekent een computer niet met decimalen, maar met bits van 1 of 0, en niet met base 10, maar met base 2 (want het is een binair systeem). Verder heeft het qua structuur veel van elkaar weg.
Verschil tussen double en float is dat een double een zogenaamd double precision floating point is. Komt er op neer dat double wat meer ruimte inneemt maar je er ook wat meer mee kan. Ik ben geen steen in uitleggen, maar ik hoop dat het duidelijker is.
[ Voor 5% gewijzigd door Amanoo op 03-12-2013 17:09 ]
Volgens mij leg je niets uit wat niet hier ook al staat:Amanoo schreef op dinsdag 03 december 2013 @ 17:08:
...heel verhaal...
RobIII schreef op dinsdag 03 december 2013 @ 10:31:
En sterker nog: we hebben gewoon een FAQ die hier over gaat: Getallen en talstelsels FAQ -> Floats (ook wel drijvende komma of zwevende komma getallen).
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
Zélfs die staat in de inmiddels meermaals aangehaalde FAQ
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij