Skocz do zawartości
kamus

[c++]dziesietna Na Binarna

Rekomendowane odpowiedzi

#include <conio.h>#include <stdio.h>main(){ clrscr(); int t[100],n,i; printf("Podaj n"); scanf("%d",&n);for(i=0;n>=1;i++,n=n/2){if(n%2==0) t[i]=0;else t[i]=1;}   printf("i=%d\n\n",i);for(i;i>=0;i--)printf("%d",t[i]);		 	 getch();	 return 0;}

dziala, ale wyswietla tez jakies liczby z kosmosu.. nie wiem dlaczego.. pomoze mi ktos?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ja bym napisal to tak:

 

#include <iostream>

using namespace std;

int main()

{

int n;

cout << "wprowadz liczbe dziesietna: ";

cin >> n;

cout << "wartosc w zapisie binarnym: "

<< bin << n << endl; //dla osemkowego oct, 16 hex itd;;;

} // ;)

 

 

niestety nie mam czasu na sprawdzenie twojego kodu, zmykam ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dziwne liczy pochodzą stąd, że gdy już wpiszesz liczbę binarną do tablicy to zmienna 'i' jest inkrementowana, na zakończenie pętli... no i gdy zaczynasz wyświetlać 'i' jest "za duże" o jeden - jako pierwsza liczba wyświetlana jest losowa wartość przechowywana w tablicy o jedną pozycję dalej niż cały zapis binarny...

Po prostu w drugiej pętli, zamiast:

"for(i; i >= 0; i--)"

zapisz

for(i--; i>= 0; i--)"

i będzie wszystko ok.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ja mam take dwie propozycje. Po pierwsze dobrze jest wypełnić tablice na początku zerami. dzieki temu nie ma potem często nie miłych sytuacji.

Poza tym zawartość tablict t możesz wyswietlić w ten sposób:

printf("%s",t);

jedna pętla mniej będzie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Po pierwsze dobrze jest wypełnić tablice na początku zerami.

A po co?.... Przecież i tak zer później nie będzie wyświetlał...

 

Poza tym zawartość tablict t możesz wyswietlić w ten sposób:

printf("%s",t);

Nie może

(to nie łańcuch znaków tylko tablica liczb....)

 

Ewentualne usprawnienia to zmiana rozmiaru tablicy do sizeof(int) i zmiana typu tablicy na char(mniej zajmuje i też przechowuje liczby całkowite)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

kolejni obroncy uciśnionych bajtów? :D.. dajcie spokój z optymalizacją szybkości i zajętości pamięci... 1GB ramu i mam sie przejmowac o pare bajtów wiecej czy mniej? :).. procesor 2GHz, tak czy siak policzenie mu intów czy charów zajmie taki ułamek czasu, że nikt i nic tego nie odczuje... :)

 

(nie wnikam czy dobrze czy źle robi samo zadanie, ale bez sensu są takie nawyki oszczędnościowe... - oszczędzać zaczniecie jak będziecie pisać na sprzęcie które ma ograniczone zasoby - mikrokontrolery np...)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...