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

fja (MIS | MACKA | PAS);

[es] :: C/C++ programiranje :: fja (MIS | MACKA | PAS);

[ Pregleda: 6898 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.041net.co.yu

Sajt: www.mycity.rs


+1 Profil

icon fja (MIS | MACKA | PAS);08.04.2002. u 11:01 - pre 268 meseci
Nailazio sam na funkcije koje uzimaju za parametar nesto ovako: fja(MIS|MACKA|PAS);
OK, jasno mi je da su oni pojmovi obicni brojevi (definisani sa #define), i jasno mi je da je parametat funkcije tipa unsigned int.
Jedino mi nije jasno kako funkcija sazna da si mu prosledio PSA, MACKU i MISA?
Probao sam da procitam taj unsigned int, ali dobijam neki bezveze broj, niti je sabirak, niti je aritmeticka sredina.
U mom siromasnom borlandovom helpu sam nasao da | operator uporedjuje dva bita, i ako je neki od ta dva makar jedan TRUE, vraca TRUE.
To bas i nema nekog smisla sa onim sto trazim, ali ajde da ne kazete da nisam trazio u helpu...
Trazio sam i u onom FAQu, ali nema nista o ovome.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
*.verat.net



+7177 Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 11:41 - pre 268 meseci
| ti je bitwise inclusive OR operator.

Tj. predstavlja logicko ILI - malo matematicke logike ne bi bilo na odmet, a? :)

U svakom slucaju, logicko ILI se moze primeniti i na binarnim brojevima - i rezultat je takodje binarni broj.

Ako su mis, macka i pas - jednobitni brojevi (0 ili 1) funkcija ce dobiti '1' kao parametar ako je bilo koji od ovih brojeva jednak 1.

Uzmi papir i olovku i napisi binarne brojeve, a onda izvrsi logicko ILI nad svakom od binarnih cifri:

Recimo 16 or 8 = 24
16 or 0 = 16

itd..


DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.041net.co.yu

Sajt: www.mycity.rs


+1 Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 12:08 - pre 268 meseci
Znaci ipak je inclusive operator, kao sto sam procitao u helpu...
Hmmm, pa kako onda f-ja sa pet takvih mogucih parametra zna koje si mu tacno parametre prosledio?
 
Odgovor na temu

Ivan Tanasic
BGD-SRBIJA

Član broj: 220
Poruke: 965
*.yubc.net

Jabber: Autoexes@jabber.sk
ICQ: 129145438


Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 12:33 - pre 268 meseci
Aghm, kolko ja znam MIS | MACKA | PAS je logicki izraz tj ima vrednost TRUE ili FALSE. Samim tim bi ova funkcija morala da prima jedan argument tipa boolean.

Ovaj izraz bi bio true recimo ako je mis true a macka i pas false, a ceo izraz bi bio false ako je recimo mis i macka true a pas false. Nemozes biti i mis i macka istovremeno ;)).

Nadam se da mislimo na istu stvar L;)
Ivan Tanasic - Autoexes

>cd pub
>more beer
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.041net.co.yu

Sajt: www.mycity.rs


+1 Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 12:48 - pre 268 meseci
Ukapirao sam
Ako MIS bude 100, a macka 010, a pas 001, onda mogu da vidim koji je bit 1
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.racasse.se

Sajt: dejan.lekic.org


+2 Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 16:51 - pre 268 meseci
Ovo me podsetilo na ona lupetanja (zastita, nema ovo veze sa tobom) na "3D programiranje" gde je neki "programer" rekao da za programiranje matematika NIJE potrebna... Evo jos jednog dokaza da je matematika KRUCIJALNA za programiranje!

Banalan primer je funkcija (bool bArg), koja bez problema moze da se pozove sa funkcija(JEDAN | DVA | TRI & CETIRI) ...

Voleo bih da na ovo neki sa "3D programiranje" obrate paznju jer bez ovakvih stvari nema cak ni 3D programiranja a ni programiranja baza!
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 19:04 - pre 268 meseci
Uhe bre kakvi su ovo komplikovani integrali, smrz'o sam se!!
I ja smatram da za programiranje nije potrebna HARDCORE matematika. Ako uzmemo u obzir iVar1 + iVar2; onda naravno da ima matematike, ali sam i dalje pri misljenju da nije potrebno PREVISE matematike, kako se to propagira po zasterilim metoda na ETF-u recimo (samo primer ima ih jos).
Nemam namere da pocinjem opet raspravu oko toga, o tome se vec raspravljalo, zato Leko, bez uvrede :) pogledaj starije postove, mislim da je tema bila u 'Vodic za ucenje'.

Sto se Pecinog problema tice, decimalni broj se u binarni pretvara na sledeci nacin:
Na primer broj 57 treba prevesti u binarni broj, onda se decimalni broj deli sa 2 jer je osnova binarnog broja 2, odnosno ima samo dve moguce vrednosti 1 ili 0.

57 : 2 ostatat je 1
28 : 2 ---------> 0
14 : 2 ---------> 0
7 : 2 ----------> 1
3 : 2 ----------> 1
1 : 2 ----------> 1 dobijeni 'binarni broj se cita odpozadi.
Znaci prevedeni decimalni broj 57, u binarni broj je 111001.

Binarni broj se prevodi u decimalni na sledeci nacin:
Na primer broj 10011 treba prevesti, onda koliko cifara ima toliko ima i stepena, od nule se polazi, (ovo je moglo i drugacije da se kaze :)) i onda se sa svakom cifrom u binarnom broj mnozi broj 2 na stepen na koji je cifra, dobijeni broj se sabira sa sledecim brojem sa istim postupokom, gde je stepen manji za jedan, znaci:

10011 = 1 * 2^4 + 0 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0 = 16 + 0 + 0 + 2 + 1 = 19

Nema potrebe da idem daljem sa ostalim operacijam.

Postoje 4 bitno orijentisana operatora u C/C++.
AND &
daje tacan iskaz samo kada su oba operanda (ili bita tacni)

OR |
daje tacan iskaz samo kada je jedan, ili oba operanda tacna.

exkluzivno OR ^
daje tacan iskaz samo kada su operandi razlicit.

komplement ~
Suprotna vrednost. Postavice bit, ako bit nije bio postavljen i obrnuto

(E sada ako treba i tablice da pisem onda... cete se nacekati :)

Evo primera i za one koji na forumu traze FAQ umesto da nabave knjigu (da Peco na tebe mislim :))
Bitovi se postavljaju operacijom maskiranja. Na primer ako postoji cetvorobajtni flag i treba postaviti osmi bit na TRUE, onda treba izvrsiti OR sa vrednoscu 128, zato jer je 128 u binarnom sistemu 1000 0000.

1 = 1
2 = 2
3 = 4
4 = 8
5 = 16
6 = 32
7 = 64
8 = 128
...

Ako u broju 1010 0110 0010 0110 (u decimalnom je 42534), onda sledi situacija:

1010 0110 0010 0110 // binarni broj u kome treba postaviti osmi bit na TRUE
OR
0000 0000 1000 0000 // 128, dodate su nule ispred
=
1010 0110 1010 0110

Ponistavanje osmog bita se izvodi operatorom AND i komplementom od 128. Komplement od 128 (^128) postavlja sve njegove pojedinacne bitove na suprotne vrednosti, zato ako je 128 bio 1000 0000 komplement je 0111 1111.Kapiras Peco :) i onda imamo sledecu situacija:

1010 0110 1010 0110
AND
1111 1111 0111 1111
=
1010 0110 0010 0110

I zadnje je ako treba promeniti bit u suprotnu vrednost, bez obzira koja je njegova vednost, koristi se operator exkluzivni OR. Mrzi me jos da pisem, verovatno ste vec shvatili ali da ipak zavrsim do kraja. Znaci ako treba promeniti OPET osmi bit bla, bla bla... onda koristimo ^ sa (opet) 128, onda imamo sledecu situaciju:

1010 0110 1010 0110
^
0000 0000 1000 0000
=
1010 0110 0010 0110

Peco imas srece sto sam imao vremena da sve ovo pisem :) ali jos jednom po ko zna koji put, uzmi neku knigu, ako imas namere da radis nesto u C/C++.

Pozdrav.
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


+1 Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 21:45 - pre 268 meseci
Moram nesto da te pitam na kraju svega ovoga
Zar nema gotove funkcije koje decimalni zapis pretvaraju u binarni, i obrnuto ?!?
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 22:07 - pre 268 meseci
E potrazi mora da ima, namuci se malo :)

Ako hoces da vidis kako bi to radilo u programu, mogu da ti posaljem jedan mali program, koji sam odavno napisao, cisto ako te zanima ;)
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 22:27 - pre 268 meseci
Citat:
zastita:
Moram nesto da te pitam na kraju svega ovoga :)
Zar nema gotove funkcije koje decimalni zapis pretvaraju u binarni, i obrnuto ?!?


Odgovor je NE ako mislis nesto tipa
Code:
 int iTrt = 1010011b;


Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


+1 Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 23:12 - pre 268 meseci
Mislio sam na funkciju, tipa
int i = BinToDec(1011);
Verovatno ima, samo treba da se protalaska, mada ce mi biti zadovoljstvo da je napisem ako ne postoji
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: fja (MIS | MACKA | PAS);08.04.2002. u 23:22 - pre 268 meseci
Gde bre Leko nadje ono 'b' na kraju binarnog broja :)
Peco evo ti funkcija, Copy/Paste i sacuvaj funkciju.

Code:

#include <stdio.h>

unsigned long IntToBin(int vrednost);

void main(void)
{
   int loop = 1, cont, vrednost;
   while (loop)
   {
        vrednost = 0;
       printf("\nUnesi vrednost koju zelis da konvertujes u binarni broj: ");
        scanf("%d", &vrednost);
       printf("broj: %ld", IntToBin(vrednost));
      printf("\n\nNaredno racunanje (0)Exit, (1)Continue: ");
      scanf("%d", &cont);
      loop = cont;
   }
}

unsigned long IntToBin(int vrednost)
{
    unsigned long bin = 0, mn = 1;
    while (vrednost > 0)
       {
        bin += (vrednost % 2) * mn;
        vrednost /= 2;
        mn *= 10; // ovde se kroz svaki prolazak dodaje po jedna nula
    }
    return bin;
}


Ova verzija programa dobijeni binarni broj cuva u promenljivoj unsigned long, uradio sam i verziju gde se binarni broj cuva u stringu, razlika je ta sto, taj prog koji radi sa stringom moze da cuva mnogo veci binarni broj, mada mora se priznati da ces retko kada imati potrebu da cuvas binarni broj koji ne moze da stane u unsigned long (0 - 4,294,967,295) mada ako bude trebalo reci.
izmena: izbrisan komentar

[Ovu poruku je menjao passanger dana 10.04.2002 u 05:55 AM GMT]
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: fja (MIS | MACKA | PAS);09.04.2002. u 19:37 - pre 268 meseci
Evo ti sors, za koji si me zamolio preko ICQ-a, valjda ce ti ovo zavrsiti posao, javi da li je.
Code:

#include <iostream.h>

void Int_To_Bin(int);

int main()
{
    int dec;
    while (1)
    {
        cout << "Unesi decimalnu vrednost (-1)Exit: ";
        cin >> dec;

        if (dec == -1)
            break;

        cout << "Unesena decimalna vrednost je: " << dec << endl;
    
        Int_To_Bin(dec);
    }

    return 0;
}

void Int_To_Bin(int dec)
{
    int j = 0;
    int bin[50];

    while (dec > 0)
    {
        bin[j] = dec % 2;
        dec /= 2;
        j++;
    }

    j--;

    cout << "Dobijena binarna vrednost je: ";
    for ( ;j >= 0; j--)
        cout << bin[j];

    cout << endl;
}

izmena: izbrisan komentar

[Ovu poruku je menjao passanger dana 10.04.2002 u 05:54 AM GMT]
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.tehnicom.net

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: fja (MIS | MACKA | PAS);09.04.2002. u 20:24 - pre 268 meseci
Citat:
zastita:
Moram nesto da te pitam na kraju svega ovoga
Zar nema gotove funkcije koje decimalni zapis pretvaraju u binarni, i obrnuto ?!?

A jel moze jedno pitanjce ? Jesi li mislio na dekadni ili bas na decimalni zapis ? Jer ako si mislio na bas decimalni, onda tu se u praksi koriste razna kodiranja da bi se decimalni zapis nekog broja pogodno predstavio jer imas probleme da neke broje koji su u dekadnom obliku napisani npr 0.4 ne mogu da se predstave sa konacno mnogo cifara u binarnom obliku ( ca detalje oko raznih nacina kodirananja savetujem ti da uzmes knjigu Osnovi Racunarskih Sistema - Mitic; knjiga se skoro pojavila u prodaji i imas da ju kupis na matematickom fakultetuu beogradu)


A ako si mislio na dekadni onda je stvar tu jako laka , da ti odam jedan trik onako cisto da pokzaemo da matematike ipak niej na odmet iako nema integrala ne znaci da nije HARDCORE
iz dekadnog u heksadecimalni to znas kako jako slatko ide ) zar ne to mozes uvek u C bez muke e sada iz heksadecimalnog u binarni je slatko ) posto je 2^4=16, odatle ipak moze nesto slatko da se izvuce ) jer pretvar cifru po cifru recimo broj 0x13=0001 0101
 
Odgovor na temu

Dejan Lozanovic
Dejan Lozanovic
Beograd

Član broj: 691
Poruke: 2325
*.tehnicom.net

Jabber: null@elitesecurity.org
Sajt: speedy-order.com


+75 Profil

icon Re: fja (MIS | MACKA | PAS);09.04.2002. u 20:33 - pre 268 meseci
Citat:
passanger:
void Int_To_Bin(int dec)
{
int j = 0;
int bin[50];

while (dec > 0)
{
bin[j] = dec % 2;
dec /= 2;
j++;
}
}


Ne bih da se nesto duvam, tipa ko je bolji programer, s obzirom da smo skoro svi bili isprozivani od blue-a ) ovo je mnogo bolje da se uradilo preko bitskih operatora. Jer aritemticki operatori relativno skupi, pogotovo deljenje i deljenje po modulu . A opet bitski su najbrzi
recimo dec %2 kao rezultat ze dati poslednji bit, jer svaki paran broj binarno zapisan zadnju cifru ima 0 a neparni 1. e pa umesto deljenja po ostatku bolje je bilo iskoristiti dec & 1;
A ovo dec /=2 je nista drugo nego siftovanje udesno, sto je opet jako brzo



[Ovu poruku je menjao Gojko Vujovic dana 09.04.2002 u 10:28 PM GMT]
 
Odgovor na temu

Predrag Damnjanovic
Predrag Damnjanovic
Nis, Srbija

Član broj: 141
Poruke: 1305
*.bankerinter.net

Sajt: www.mycity.rs


+1 Profil

icon Re: fja (MIS | MACKA | PAS);09.04.2002. u 22:17 - pre 268 meseci
Mislio sam na celobrojnu vrednost, ma kako je zvao
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
199.171.112.*



+6 Profil

icon Re: fja (MIS | MACKA | PAS);09.04.2002. u 22:37 - pre 268 meseci
Citat:
SyStemOuT:

Ne bih da se nesto duvam, tipa ko je bolji programer, s obzirom da smo skoro svi bili isprozivani od blue-a :)) ovo je mnogo bolje da se uradilo preko bitskih operatora. Jer aritemticki operatori relativno skupi, pogotovo deljenje i deljenje po modulu ;). A opet bitski su najbrzi
recimo dec %2 kao rezultat ze dati poslednji bit, jer svaki paran broj binarno zapisan zadnju cifru ima 0 a neparni 1. e pa umesto deljenja po ostatku bolje je bilo iskoristiti dec & 1;
A ovo dec /=2 je nista drugo nego siftovanje udesno, sto je opet jako brzo ;)


Ti štosevi sa šiftovanjem i bit-operacijama mogu da ubrzaju programe samo ako se koriste stari i "glupi" kompajleri. Moderni kompajleri će automatski to da odrade umesto tebe, a program je mnogo jasniji i čitljiviji.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
*.verat.net



+7177 Profil

icon Re: fja (MIS | MACKA | PAS);10.04.2002. u 01:58 - pre 268 meseci
Hehe... Dragi Tata mi uze rec iz usta :)))

phfm...
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

Milan Aksic

Član broj: 412
Poruke: 1053
*.ptt.yu



Profil

icon Re: fja (MIS | MACKA | PAS);10.04.2002. u 06:41 - pre 268 meseci
Citat:
SyStemOuT:
Citat:
passanger:
void Int_To_Bin(int dec)
{
int j = 0;
int bin[50];

while (dec > 0)
{
bin[j] = dec % 2;
dec /= 2;
j++;
}
}


Ne bih da se nesto duvam, tipa ko je bolji programer, s obzirom da smo skoro svi bili isprozivani od blue-a :)) ovo je mnogo bolje da se uradilo preko bitskih operatora. Jer aritemticki operatori relativno skupi, pogotovo deljenje i deljenje po modulu ;). A opet bitski su najbrzi
recimo dec %2 kao rezultat ze dati poslednji bit, jer svaki paran broj binarno zapisan zadnju cifru ima 0 a neparni 1. e pa umesto deljenja po ostatku bolje je bilo iskoristiti dec & 1;
A ovo dec /=2 je nista drugo nego siftovanje udesno, sto je opet jako brzo ;)



[Ovu poruku je menjao Gojko Vujovic dana 09.04.2002 u 10:28 PM GMT]

Kao prvo, nisam ono gore pisao da bih pokazao kako sam ja 'veliki programer'... svasta, imao sam vremena da ono gore ispisem a s'obzirom da Pecu i c/c++ FAQ mrzi da procita, pokusao sam da mu pomognem, a mozda ce i jos nekome dobro doci da to procita, kada je vec tu.Isto tako, ne znam kada je blue bilo koga prozivao i u kom kontextu pa se samim tim i ne osecam prozvanim, btw. ako je blue sve isprozivao u kontextu slabe kompetentnosti, onda nema sumnje da je pogresio, tu ne mislim prvenstveno na sebe... mada opet ne znam o cemu se radi.

Drugo, ono gore sam pisao pre mozda godinu/godinu ipo, kako sam i spomeno u mom predjasnjem postu, tako da sam sada samo uradio copy paste. Mada... moj prvi pokusaj tada, da resim ovaj problem, je cuvao cifre u char niz umesto (sada) u int niz, e vec je taj prog pun kojekakvih brljotina i raznog 'hakeraja' kako bi to naterao da to proradi ;) za divno cudo program je radio iako je, priznajem prava brljotina.
Toliko
 
Odgovor na temu

[es] :: C/C++ programiranje :: fja (MIS | MACKA | PAS);

[ Pregleda: 6898 | Odgovora: 18 ] > FB > Twit

Postavi temu Odgovori

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