• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Typy zmiennych - łopatologiczne wytłumaczenie

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
416 wizyt
pytanie zadane 7 lipca 2017 w C i C++ przez Krzysiek Kowalczyk Początkujący (360 p.)
Witajcie!

Ucze się programowanie z kanału pana Mirosława oraz z Tutorialspoint. Stanąłem w miejscu gdzie mowa jest o Typach Danych. Tzn nie rozumiem tabelki z typami i ich zakresem wartości (czytałem na innych stronach o ich rozmiarach pamięci i zakresie) https://www.tutorialspoint.com/cplusplus/cpp_data_types.htm

I nie wiem czy dobrze rozumuje. np jeśli określam zmienną jako int o dowolnej liczbie z przedziału -2147483648 do 2147483647 to jej rozmiar pamięci wyniesie 4 bajty? Niezależnie od tego jaką wartość wybiorę?

To samo pytanie jw. odnośnie zmiennej char. Jeśli wybiorę jakiś symbol/ znak to wartość jaką komputer odczyta będzie się mieścić w przedziale -128 do 127 lub od 0 do 255 a rozmiar jaki potrzebny będzie do jej przechowania wyniesie 1 bajt?

Z góry dziękuję za odpowiedź

3 odpowiedzi

0 głosów
odpowiedź 7 lipca 2017 przez VirtualMember Pasjonat (15,790 p.)
Tak, alokując zmienną, która mieści dane z zakresu <0;100> jest tak jakbyś brał pojemnik, który pomieści 100 śmieci. To, że wrzucisz tam tylko jeden z nich, nie sprawi, że pojemnik się pomniejszy.
0 głosów
odpowiedź 7 lipca 2017 przez Fenix Nałogowiec (26,750 p.)
Tak, dokładnie tak będzie. Musisz sobie uzmysłowić że liczba nie ma wagi w zależności od ilości cyfr w niej zawartych, tylko reprezentacje w bitach (opis że to jest właśnie ta liczba, zrozumiały dla komputera).
0 głosów
odpowiedź 7 lipca 2017 przez Bondrusiek Maniak (61,440 p.)

Witaj,

I nie wiem czy dobrze rozumuje. np jeśli określam zmienną jako int o dowolnej liczbie z przedziału -2147483648 do 2147483647 to jej rozmiar pamięci wyniesie 4 bajty? Niezależnie od tego jaką wartość wybiorę?

Nie ma zależności jaką liczbę wybierzesz typ pobiera statyczną ilość pamięci dla liczby. Np dla 8bitów(1Bajt)

0  = 00000001

255 = 11111111

W tym przypadku liczba 0 oraz 255 pobierają taką samą ilość pamięci.

To samo pytanie jw. odnośnie zmiennej char. Jeśli wybiorę jakiś symbol/ znak to wartość jaką komputer odczyta będzie się mieścić w przedziale -128 do 127 lub od 0 do 255 a rozmiar jaki potrzebny będzie do jej przechowania wyniesie 1 bajt?

Jeśli chcesz rozszerzyć wartość zmiennej to stosujesz przedrostek  unsigned np. unsigned char nazwa. Zakres nazwa to {0, 255}. Możesz również przenieść zakres zmiennej na liczby ujemne poprzez przedrostek signed(on do typów dodawany jest domyślnie) signed char nazwa. Zakres nazwa to {-128, 127}. Oba zakresy są takie same lecz korzystają z innych liczb. Pamiętaj, że wielkość typu zależy od architektury sprzętowej np na x32 int może mieć 4bajty a na x64 np 8bajtów. Aby sprawdzić wielkość bajtową typu zmiennej zastosuj operator sizeof(typ_zmiennej).

Pozdrawiam

Podobne pytania

0 głosów
1 odpowiedź 1,558 wizyt
pytanie zadane 7 września 2017 w C i C++ przez qlucha Obywatel (1,790 p.)
0 głosów
1 odpowiedź 1,775 wizyt
pytanie zadane 8 listopada 2016 w Java przez itcloud Gaduła (3,380 p.)
0 głosów
2 odpowiedzi 666 wizyt
pytanie zadane 1 marca 2016 w JavaScript przez ukasz112 Początkujący (390 p.)

93,436 zapytań

142,431 odpowiedzi

322,669 komentarzy

62,801 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...