Licznik typu long long nie liczy do 8 bajtów
Ostatnio zmodyfikowano 2020-08-21 17:17
th3r4t3l Temat założony przez niniejszego użytkownika |
Licznik typu long long nie liczy do 8 bajtów » 2020-08-20 15:28:07 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ę 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 ); if( licznik == 0xFFFFFFFFFFFFFFFF ) { licznik = 0; i++; } } }
Czy ktoś to może wytłumaczyć???? Piszę to w devcpp [TDM-GCC 4.9.2 release 32-bit] |
|
pekfos |
» 2020-08-20 18:22:00 |
|
th3r4t3l Temat założony przez niniejszego użytkownika |
» 2020-08-21 15:29:04 Dzięki za podpowiedź ale niestety zarówno: printf( "Licznik: 0x%0.16llX\r", licznik );
jak i : printf( "Licznik: 0x%llx\r", licznik );
nie działa Po osiągnięciu 4 bajtów zeruje się |
|
pekfos |
» 2020-08-21 17:17:55 |
|
« 1 » |