menu
shopping_cart
0
KOSÁR

9. lecke

Játék a határokkal

lightbulb_outlineA változók típusmódosítói

Az integer számokat a C 4 byte-on tárolja. 4 byte = 32 bit. Ezzel a 32 bittel összesen 232 = 4'294'967'296 darab szám írható le azonban nem ez a maximális felvehető érték, mivel a negatív számokra is gondolni kell. Ez a tartomány elfeleződik, egyik fele a számegyenes bal oldalára, a negatív számokhoz kerül.

Ha határátlépést követünk el, akkor semmi jóra nem számíthatunk. Az fog történni, hogy a számegyenesen "átfordulunk" és a másik végéről kezdjük a számolást. Például, ha 2'147'483'647 felső határt 3-mal átlépjük, szóval egy változóba 2'147'483'650-et préselünk, akkor a számegyenes negatív végén kötünk ki, és itt 3-at lépünk:

#include<stdio.h>

int main()
{

    int x = 2147483650;

    printf("%d", x);

return 0;
}

limit.c c

A double számokat a C 8 byte-on tárolja – normál alakban. A normál alak egy 1 és 2 közötti törtszám szorozva 10 valahányadik hatványával. A normál alak két részből áll:

  1. mantissza: a törtrész

  2. karakterisztika: hányadik hatványon van a 10

Ezt a két adatot tárolja le a C, a mantisszát 6 byte-on, a karakterisztikát 2 byte-on. Így a limitek egészen nagy számok.