binarna liczba
C++: Dobry wieczór
Napisz program, który policzy i wypisze na ekranie z ilu 1 w zapisie binarnym składa się
wprowadzona liczba przez klawiaturę typu unsinged int
31 sty 01:33
Mariusz:
Możesz zamienić wprowadzoną liczbę całkowitą na jej zapis binarny
dzieląc tę liczbę przez 2 zapisując reszty z tych dzieleń a następnie zliczać te jedynki
Możesz też pobawić się operacjami bitowymi
Gdybyś chciał zamieniać liczbę na jej reprezentację dwójkową
to przydatna byłaby tablica albo łańcuch więc operacje
bitowe wydają się być nieco lepszym pomysłem
31 sty 04:48
sts: Możesz zamienić liczbę z zapisu dziesiętnego na binarny (w internecie znajdziesz wiele gotowych
rozwiązań, więc przypatrz się im i napisz na ich podstawie swój). Następnie sprawdzasz z ilu
znaków składa się twoja cyfra (n) i możesz w pętli (dopóki i<=n) po każdej iteracji dzielić
przez 10 (wtedy będzie "odpadać ta ostatnia cyfra") i wówczas sprawdzasz czy ta cyfra jest 1
czy 0 − jeśli jest 1 to dodajesz ją do zmiennej np. suma, którą zadeklarowałeś na początku
jako int suma = 0;. Jeżeli jest 0 to po prostu pętla wykonuje się kolejny raz.
W zmiennej suma będziesz miał sumę tych jedynek − a suma jedynek to nic innego jak jednocześnie
ich ilość. Zatem wystarczy wypisać zmienną suma na ekran i gotowe
31 sty 09:24
sts: Ta opcja wydaje mi się nieco prostsza niż wcześniejsza odpowiedź − ale Twój wybór.
Powodzenia
31 sty 09:25
sata: a po co angażować w to tablice itp? przeciez program juz wprowadzoną liczbe przetworzył na
system binarny i ją przechowuje w pamięci
żeby ją odczytać wystarczy uzyć odpowiedniej funkcji w c++ wskazówka skorzystaj z rzutowania
typów
31 sty 13:36
jc: Można tak., choć można pewnie lepiej.
// x = liczba do zbadania
int s = 0;
while(x) {s += x&1; x >>= 1; }
// s = liczba bitów.
31 sty 14:08