Odpowiedź :
Uwaga: przed 9:34, 9 lutego 2022 r. załączniki 3. i 4. miały po jednej literówce.
Odpowiedź
- Pierwszy załącznik zawiera program dla liczb całkowitych bez znaku (unsigned). Natomiast drugi zawiera wynik działania tego programu.
- Trzeci załącznik zawiera program dla liczb całkowitych ze znakiem (signed). A czwarty wynik działania tego programu.
Wyjaśnienie
Programy działają pod Code::Blocks, Dev-C++ oraz Visual Studio.
Inaczej napisane programy działające pod Linuxem, onlinegdb, programiz, replit itd. i dodatkowo z komentarzem znajdziesz w pytaniu brainly.pl/zadanie/21437579
#include <iostream> jest konieczne aby zadziałało printf(). Uznałam, że użycie printf() jest dużo przejrzystsze. A dodatkowo kod źródłowy jest mniej rozlazły.
Wcale nie jest przypadkiem, że wyniki dla typów long oraz unsigned long są inne w tym rozwiązaniu i w brainly.pl/zadanie/21437579 ! ! !
Otóż standard C++ wcale dokładnie nie definiuje ile bajtów mają zajmować zmienne typów całkowitych... Przy tym jest tak, iż wyniki mogą być różne nawet jeśli został użyty ten sam kompilator, co najłatwiej porównać używając g++. Otóż Code::Blocks oraz Dev-C++ używają g++, tylko że robią to inaczej (inne środowisko). Skomplikowane oraz trudne? Tak! Dlatego najlepiej w ogóle nie używać typów long oraz unsigned long, a ograniczyć się do typów int oraz long long (oraz ich wersji bez znaku).
![Zobacz obrazek 0AB](https://pl-static.z-dn.net/files/d2d/3592d4133082ed2f643e06eaf944a310.png)
![Zobacz obrazek 0AB](https://pl-static.z-dn.net/files/d60/0326afb102a030a5d2f7d7be2509e578.png)
![Zobacz obrazek 0AB](https://pl-static.z-dn.net/files/dfd/7a5f122505c21dbc0944647d1949a380.png)
![Zobacz obrazek 0AB](https://pl-static.z-dn.net/files/d0c/7d2057ca659d0ce17aed41a138ac01f3.png)