Search
 
 
  Engleski
 
 
 
Open in this window (click to change)
Forum@DeGiorgi: Početna
Forum za podršku nastavi na PMF-MO
Login Registracija FAQ Smajlići Članstvo Pretražnik Forum@DeGiorgi: Početna

bitcount
WWW:

Moja sarma
 
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2
Prethodna tema :: Sljedeća tema  
Autor/ica Poruka
goc9999
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 10. 2003. (19:31:20)
Postovi: (238)16
Spol: muško
Sarma = la pohva - posuda
= 27 - 22
Lokacija: Utrina

PostPostano: 20:58 uto, 7. 2. 2006    Naslov: bitcount Citirajte i odgovorite

int bitcount(unsigned int x)
{
int b=0;
while (x!=0)
{
if ( znam[br_znam++]=x&2 )
b++;

x >>=2 ;
}
return b;
}

u mainu printf("Broj jedinica u binarnom zapisu %d\n",bitcount(x));

mene muci if ( znam[br_znam++]=x&2 )...na koji nacin on dobiva znam po znam i zasto je usporedjuje sa x?

x >>=2 sto je ovo?

hvala
int bitcount(unsigned int x)
{
int b=0;
while (x!=0)
{
if ( znam[br_znam++]=x&2 )
b++;

x >>=2 ;
}
return b;
}

u mainu printf("Broj jedinica u binarnom zapisu %d\n",bitcount(x));

mene muci if ( znam[br_znam++]=x&2 )...na koji nacin on dobiva znam po znam i zasto je usporedjuje sa x?

x >>=2 sto je ovo?

hvala



_________________
10100111001
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Zvone
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 01. 07. 2003. (13:09:44)
Postovi: (9D)16
Sarma = la pohva - posuda
67 = 74 - 7

PostPostano: 21:28 uto, 7. 2. 2006    Naslov: Citirajte i odgovorite

Mislim da treba pisati x&1 a ne x&2, te isto tako x>>=1 umjesto x>>=2?

x&1 je isto kao i x%2: napravi se booleovski and nad bitovima od x i 0000..0001, pa je to zapravo 1 ako je x neparan, a 0 ako je paran, tj. 1 ako je zadnji bit od x jednak 1, a 0 ako nije.

x>>=1 je 1337 :) nacin da se napise x=x/2; rijec je o operatoru koji sve bitove od x "gurne" udesno, efekt je isti kao da se x cjelobrojno podijeli sa 2.
Npr. za x=5(dec)=000...000101(bin) je x>>1=000...000010(bin)=2(dec) ("gurnuli" smo sve bitove udesno, zadnja jedinica se izgubi).
Slicno x>>=2 sve bitove od x "gurne" za 2 mjesta udesno itd.

if (znam[br_znam++]=x&1) b++; se moze raspisati kao

[code:1]znam[br_znam]=x%2; // dakle znam[br_znam]=zadnja bin. znamenka od x
if (znam[br_znam]==1) b++;
br_znam++;
[/code:1]

Kad se to "uvrstis" u gornji kod, mislim da ce ti biti jasno kako radi :)
Mislim da treba pisati x&1 a ne x&2, te isto tako x>>=1 umjesto x>>=2?

x&1 je isto kao i x%2: napravi se booleovski and nad bitovima od x i 0000..0001, pa je to zapravo 1 ako je x neparan, a 0 ako je paran, tj. 1 ako je zadnji bit od x jednak 1, a 0 ako nije.

x>>=1 je 1337 Smile nacin da se napise x=x/2; rijec je o operatoru koji sve bitove od x "gurne" udesno, efekt je isti kao da se x cjelobrojno podijeli sa 2.
Npr. za x=5(dec)=000...000101(bin) je x>>1=000...000010(bin)=2(dec) ("gurnuli" smo sve bitove udesno, zadnja jedinica se izgubi).
Slicno x>>=2 sve bitove od x "gurne" za 2 mjesta udesno itd.

if (znam[br_znam++]=x&1) b++; se moze raspisati kao

Kod:
znam[br_znam]=x%2; // dakle znam[br_znam]=zadnja bin. znamenka od x
if (znam[br_znam]==1) b++;
br_znam++;


Kad se to "uvrstis" u gornji kod, mislim da ce ti biti jasno kako radi Smile


[Vrh]
Korisnički profil Pošaljite privatnu poruku Pošaljite e-mail
goc9999
Forumaš(ica)
Forumaš(ica)


Pridružen/a: 15. 10. 2003. (19:31:20)
Postovi: (238)16
Spol: muško
Sarma = la pohva - posuda
= 27 - 22
Lokacija: Utrina

PostPostano: 21:34 uto, 7. 2. 2006    Naslov: Citirajte i odgovorite

thx, tvoje pretpostavke su bile tocne,idu jedinice na ona mjesta. ja sam mijenjo znam da vidm sto se onda dogadja i kasnije sam zaboravio sve vratit na staro
thx, tvoje pretpostavke su bile tocne,idu jedinice na ona mjesta. ja sam mijenjo znam da vidm sto se onda dogadja i kasnije sam zaboravio sve vratit na staro



_________________
10100111001
[Vrh]
Korisnički profil Pošaljite privatnu poruku
Prethodni postovi:   
Započnite novu temu   Odgovorite na temu   printer-friendly view    Forum@DeGiorgi: Početna -> Kolegiji 1. godine, preddiplomski studij Matematika -> Programiranje 1 i 2 Vremenska zona: GMT + 01:00.
Stranica 1 / 1.

 
Forum(o)Bir:  
Ne možete otvarati nove teme.
Ne možete odgovarati na postove.
Ne možete uređivati Vaše postove.
Ne možete izbrisati Vaše postove.
Ne možete glasovati u anketama.
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2002 phpBB Group
Theme created by Vjacheslav Trushkin
HR (Cro) by Ančica Sečan