To forum używa plików cookies
To forum wykorzystuje pliki cookies do przechowywania informacji o Twoim logowaniu, jeśli jesteś zarejestrowany, oraz informacji o Twojej ostatniej wizycie, jeśli nie jesteś zalogowany. Pliki cookies to niewielkie pliki tekstowe zapisywane na Twoim komputerze; cookies ustawiane przez to forum mogą być używane wyłącznie na tej stronie i nie stanowią zagrożenia dla bezpieczeństwa. Cookies na tym forum śledzą również, które tematy zostały przez Ciebie przeczytane oraz kiedy miało to miejsce. Prosimy o potwierdzenie, czy akceptujesz, czy odrzucasz zapisywanie tych plików cookies.

Niezależnie od wyboru w Twojej przeglądarce zostanie zapisany plik cookie, aby zapobiec ponownemu zadawaniu tego pytania. W każdej chwili będziesz mógł zmienić ustawienia cookies, korzystając z linku w stopce strony.

Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Programowanie w języku C w środowisku AVR Studio4
2UL * 2UL = 4UL
Wniosek => wynik mnożenia dwu liczb "unsigned long" może się zmieścić w "unsigned long".

Warto pamiętać żeby zawsze dodawać przyrostek "UL" (albo "ul", "LU", "lu") do stałych "unsigned long".

Problem dużo poważniejszy to ... 4294967296 ... ta wartość wymaga 33 bitów, więc na pewno nie zmieści się w "unsigned long".
Kompilator powinien się wściec (zgłosić błąd) ... jeśli tego nie zrobił to nie wiadomo jaką stałą wstawił w to równanie.
Max. wartość która zmieści się w "unsigned long" to 4294967295UL ... czyli 0xFFFFFFFFUL
Cytuj


Wiadomości w tym wątku

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości