Skocz do zawartości

th3r4t3l

Użytkownicy
  • Zawartość

    2
  • Rejestracja

  • Ostatnio

Posty napisane przez th3r4t3l

  1. Skoro zmienna typu unsigned long long przechowuje wartości od 0 do 18446744073709551615 czyli do 0xFFFFFFFFFFFFFFFF (8 bajtów) to dlaczego zeruje się po 4 bajtach [0xFFFFFFFF] i nie liczy do 8 bajtów [0xFFFFFFFFFFFFFFFF] ???
    Napisałem przykładowy kod i tak mi się własnie dzieje

    #include<conio.h>
    #include<stdio.h>
    
    using namespace std;
    
    unsigned int i=0;
    unsigned long long licznik=0;
    
    int main()
    {
        printf("Rozmiar typu short    : %d bytes.\n",sizeof(unsigned short));
        printf("Rozmiar typu int      : %d bytes.\n",sizeof(unsigned int));
        printf("Rozmiar typu long     : %d bytes.\n",sizeof(unsigned long));
        printf("Rozmiar typu long long: %d bytes.\n\n",sizeof(unsigned long long));    
        while(i!=2)
        {
            licznik++;
            if(licznik%0xFFFFFFF==0)
                printf("Licznik: 0x%0.16X\r",licznik);
                // Wyswietl stan licznika co 0xfffffff = 268 435 455
                // Wyswietlanie ciągłe mocno spowalnia program.
            if(licznik==0xFFFFFFFFFFFFFFFF) // = 18446744073709551615
            {
                licznik=0;
                i++;
            }
        }
    }

     

    Czy ktoś to może wytłumaczyć????

    Piszę to w devcpp [TDM-GCC 4.9.2 release 32-bit]

×
×
  • Utwórz nowe...