matematykaszkolna.pl
binarna liczba C++: Dobry wieczór emotka 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 emotka
31 sty 09:24
sts: Ta opcja wydaje mi się nieco prostsza niż wcześniejsza odpowiedź − ale Twój wybór. Powodzenia emotka
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