Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[Zadatak] Realni u binarni zapis broja

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Realni u binarni zapis broja

[ Pregleda: 3314 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

system0
student

Član broj: 215943
Poruke: 3
88.207.56.*



Profil

icon [Zadatak] Realni u binarni zapis broja21.03.2009. u 20:09 - pre 183 meseci
Imam ovaj zadatak i jednostavnom nekontam zasto nevalja ,ako bi neko mogao skontat.

Napisati C program koji s tipkovnice učitava realni broj. Potrebno je izračunati i na ekran ispisati binarni zapis tog realnog broja u 32-bitnom registru.
Code:

#include<stdio.h>

int main(){
char binbroj[32];
int predznak = 1;
int pot=0;
float realniBroj,frac;
int E;

printf("Unesi realni broj");
scanf("%f",&realniBroj);
if (realniBroj < 0)
{
predznak = -1;
frac = realniBroj * predznak;
binbroj[0] ='1';
}
if (frac < 1 )
{
while (frac < 1)
{
frac *= 2.0;
pot--;
}
}
else {
while (frac > 2)
{
frac /= 2.0;
pot++;
}
}
E = pot * 127 ;
for (int i=0;i>=1;i--)
{

if (E % 2 == 0)
binbroj[i] = '0';
else
binbroj[i] ='1';
E /= 2;
}
frac -= 1;
for (i=9;i<=31;i++){
frac *= 2.0;
if (frac >=1) {
binbroj[i] = '1';
frac -= 1.0;

} else binbroj[i] ='0';
}


printf("realni binarni broj %f u registru ima binarni zapis \n",realniBroj);

for(i=0;i<32;i++)
{
if(i==1) printf (" ");
if(i==9) printf (" ");
printf("%c",binbroj[i]);
}
}

jos jedna stvar , complier mi javlja warning :warning C4508: 'main' : function should return a value; 'void' return type assumed, ne znam zasto.

Ako je moguce da me neki postavi kometare kod if statementa jel nekontam kako to radi . Hvala

[Ovu poruku je menjao X Files dana 21.03.2009. u 22:01 GMT+1]
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: [Zadatak] Realni u binarni zapis broja21.03.2009. u 22:04 - pre 183 meseci
Nemam sad vremena da detaljnije pregledam kod, ali obrati paznju na liniju:
for (int i=0;i>=1;i--)

Telo petlje se ne izvrsava.
 
Odgovor na temu

system0
student

Član broj: 215943
Poruke: 3
*.xnet.hr.



Profil

icon Re: [Zadatak] Realni u binarni zapis broja22.03.2009. u 11:40 - pre 183 meseci
Moze li neko pomoc da proradi ?
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
*.dynamic.sbb.rs.



+7 Profil

icon Re: [Zadatak] Realni u binarni zapis broja24.03.2009. u 22:26 - pre 183 meseci
Da bi mogao da iskompajlujes stavi gore pri vrhu funkcije int i; i u liniji for (int i=0;i>=1;i--) izbrisi int da ostane samo for (i=0;i>=1;i--)
i na kraju funkcije , pre } stavi return 0; (to je ovaj warning :warning C4508: 'main' : function should return a value)
 
Odgovor na temu

system0
student

Član broj: 215943
Poruke: 3
*.xnet.hr.



Profil

icon Re: [Zadatak] Realni u binarni zapis broja26.03.2009. u 19:51 - pre 183 meseci
Napravio sam uz pomoću zadanog linka slicni program ,ali zato nekontam par stvari u programu
Radi savrseno , Hvala na link
#include <stdio.h>
#include <math.h>

void main (){
float vrijednost=0,privremeno=0,decdesno=0,zapis;
int oznaka=0,i=0,n=0,ostatak,declijevo=0;
char temp[32],binlijevo[32],bindesno[32];

printf("Unesi realan broj: ");
scanf("%f",&vrijednost);

if (vrijednost < 0)
oznaka = 1 ;
vrijednost= privremeno = fabs(vrijednost);
declijevo=(int)privremeno;
decdesno=vrijednost-declijevo;

do{ // jel konta neko sto odavde i nadalje radi program
ostatak = declijevo % 2 ;

if ( ostatak == 1)
temp[i++] = '1';
else
temp[i++] = '0';
declijevo = declijevo / 2;
} while(declijevo !=0);
while(i>=0) {
binlijevo [n++] = temp[--i];
}
binlijevo[n-1]=0; // do ovdje
printf("\nBinarna vrijednost realnog broja %s \n",binlijevo);
printf("\nPritisniti bilo koju tipku\n");

}





 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: [Zadatak] Realni u binarni zapis broja

[ Pregleda: 3314 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.