Vast punt vs drijvende komma nummer

Ik begrijp gewoon geen vaste-komma en drijvende-kommagetallen vanwege de moeilijk leesbare definities ervan overal op Google. Maar geen enkele die ik heb gelezen, geeft een voldoende eenvoudige uitleg van wat ze werkelijk zijn. Kan ik een duidelijke definitie krijgen met een voorbeeld?


Antwoord 1, autoriteit 100%

Een vast-kommagetal heeft een specifiek aantal bits (of cijfers) gereserveerd voor het gehele deel (het deel links van de komma) en een specifiek aantal bits gereserveerd voor het fractionele deel (het deel rechts van de komma). Het maakt niet uit hoe groot of klein je getal is, het zal altijd hetzelfde aantal bits gebruiken voor elke portie. Als uw vaste-kommanotatie bijvoorbeeld in decimaal IIIII.FFFFFwas, zou het grootste getal dat u zou kunnen vertegenwoordigen 99999.99999zijn en zou het kleinste niet-nulgetal 00000.00001. Elk stukje code dat dergelijke getallen verwerkt, moet ingebouwde kennis hebben van waar de komma is.

Een drijvende-kommagetal reserveert geen specifiek aantal bits voor het gehele deel of het breukdeel. In plaats daarvan reserveert het een bepaald aantal bits voor het nummer (de mantisseof significandgenoemd) en een bepaald aantal bits om waarbinnen dat getal te zeggen getal waar de komma staat (de exponentgenoemd). Dus een getal met drijvende komma dat uit 10 cijfers bestaat en 2 cijfers gereserveerd voor de exponent, kan een grootste waarde van 9.9999999e+50vertegenwoordigen en een kleinste niet-nulwaarde van 0.0000001e-49.


Antwoord 2, autoriteit 23%

Een vast puntgetal betekent gewoon dat er een vast aantal cijfers achter de komma staat. Een getal met drijvende komma staat een wisselend aantal cijfers achter de komma toe.

Als je bijvoorbeeld een manier hebt om getallen op te slaan waarvoor precies vier cijfers achter de komma nodig zijn, dan is dit een vast punt. Zonder die beperking is het een drijvende komma.

Als een vast punt wordt gebruikt, gebruikt de programmeur vaak een geheel getal en gaat hij ervan uit dat sommige cijfers voorbij de komma liggen. Ik wil bijvoorbeeld twee cijfers van precisie behouden, dus een waarde van 100 betekent eigenlijk 1,00, 101 betekent 1,01, 12345 betekent 123,45, enz.

Drijvende-kommagetallen zijn meer algemeen bedoeld, omdat ze op dezelfde manier zeer kleine of zeer grote getallen kunnen vertegenwoordigen, maar er is een kleine nadeel aan het hebben van extra opslagruimte voor waar de decimale plaats naartoe gaat.


Antwoord 3, autoriteit 4%

Voor zover ik weet, wordt rekenen met vaste komma’s gedaan met gehele getallen. waarbij het decimale deel wordt opgeslagen in een vast aantal bits, of het getal wordt vermenigvuldigd met hoeveel cijfers decimale precisie nodig is.

Bijvoorbeeld, als het getal 12.34moet worden opgeslagen en we hebben maar twee cijfers achter de komma nodig, dan wordt het getal vermenigvuldigd met 100om 1234. Bij het uitvoeren van wiskunde op dit nummer, zouden we deze regelset gebruiken. Het toevoegen van 5620of 56.20aan dit getal zou 6854in data of 68.54opleveren.

Als we het decimale deel van een getal met vaste komma willen berekenen, gebruiken we de modulo (%) operand.

12.34 (pseudocode):

v1 = 1234 / 100 // get the whole number
v2 = 1234 % 100 // get the decimal number (100ths of a whole).
print v1 + "." + v2 // "12.34"

Drijvende-kommagetallen zijn een heel ander verhaal bij programmeren. De huidige standaard voor getallen met drijvende komma gebruikt zoiets als 23 bits voor de gegevens van het getal, 8 bits voor de exponent en 1 maar voor teken. Zie deze Wikipedia-link voor meer informatie hierover.


Antwoord 4, autoriteit 2%

De term ‘vaste punt’ verwijst naar de overeenkomstige manier waarop getallen worden weergegeven, met een vast aantal cijfers achter en soms vóór de komma.
Bij drijvende-kommaweergave kan de plaatsing van de komma ‘zweven’ ten opzichte van de significante cijfers van het getal.
Een representatie met een vaste komma met een uniforme plaatsingsconventie voor decimalen kan bijvoorbeeld de getallen 123,45, 1234,56, 12345,67 enz. vertegenwoordigen, terwijl een representatie met drijvende komma bovendien 1,234567, 123456,7, 0,00001234567, 1234567000000000, enz. kan vertegenwoordigen.


Antwoord 5

Neem het nummer 123.456789

  • Als geheel getal zou dit getal 123 zijn
  • Als een vast punt (2), dit
    getal zou 123.46 zijn (ervan uitgaande dat je het naar boven hebt afgerond)
  • Als drijvende komma zou dit getal 123.456789 zijn

Met drijvende komma kunt u vrijwel elk getal met grote precisie weergeven. Vast is minder precies, maar eenvoudiger voor de computer..

Other episodes