Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- int main(void) {
- int a[8], n, i,x,z,suma=0,m=0; //a[8] - tablica, do ktorej bedziesz dodawał liczby binarne po zamianie, n-liczba ktora podajesz, i-zmienna tablicowa,
- //x-zczytuje liczbę z tablicy,z-podnosi liczbę do potęgi(zawsze podnosi 2 do potęgi (j-iteracja petli)),suma-sumuje liczby po zamianie na dziesietny
- //m-licznik(ma policzyc na ilu bitach jest zapisana liczba binarna, żeby później zamienić z powrotem na dziesietna)
- printf("Wpisz liczbę, którą chcesz zamienić: ");
- scanf_s("%d", &n);
- for (i = 0; n > 0; i++) {
- m=m+1; //liczy na ilu bitach jest zapisana liczba(ilosc wykonanych peli)
- a[i] = n % 2; //dodaje liczbę 0 lub 1 do tablicy (to nie zmienia liczby n, zmiana jest w nastepnej linijce)
- n = n / 2; //dzieli liczbę na 2
- }
- printf("\nBinarnie to: ");
- for (i = i - 1; i >= 0; i--) //petla odczytujaca OD KOŃCA tablice a[]
- {
- printf("%d", a[i]);
- }
- for (int j = 0; j < m; j++) { //zamiana z powrotem na liczbę dziesiętną
- x = a[j]; //zczytuje X z tablicy
- if (x == 1) { //jestli x=1 to podnosi do potęgi(tak sie zamienia binarne na dziesiętne), jesli x=0 to nic nie robi
- z = pow(2,j);
- suma += z; //dodaje do zmiennej suma tą liczbę, którą otrzymalismy po podniesieniu do potęgi
- }
- }
- printf("Suma\n%d", suma); //drukuje wynik
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement