Gå til innhold

Anbefalte innlegg

Heisann!

 

Jeg prøver og lære meg C++

Og for å forstå alt så må jeg få noen forklaringer, hvorfor eller hva gjør den kommandoen og hva gjør den linja der og hvorfor det ...

 

Noen som har tid til og forklare meg dette(?):

#include <stdio.h>

#include <iostream.h>



int main(int nArg, char* pszArg [])

{

heksadesimalt

cout.setf(ios::hex, ios::hex);



int nArg1;

nArg = 0x1234;



int nArg2;

nArg2 = 0x00ff;



cout << "Arg1 = 0x" << nArg1 << "n";

cout << "Arg2 = 0x" << nArg2 << "n";

cout << "~nArg1 = 0x" << ~nArg1 << "n";

cout << "~nArg2 = 0x" << ~nArg2 << "n";



cout << "nArg1 & nArg2 = 0x"

<< "(nArg1 & nArg2)

<< "n";

cout << "nArg1 | nArg2 = 0x"

<< (nArg | nArg2)

<< "n"

cout << "nArg1 ^ nArg2 = 0x"

<< (nArg1 ^ nArg2)

<< "n"





return 0;

}

 

Jeg er evig takknemlig hvis noen hadde kunnet forklare hvorfor og hvordan hvert eneste ord ovenfor er slik som det er...

 

Med det samme. Hva er "ff" eller hva det er?

Lenke til kommentar
Videoannonse
Annonse

Tror ikke den gjør så mye, for den kompileres ikke en gang.. :)

 

Hvor har du fått koden fra? Står vel beskrevet hva den gjør der?

 

Blir en teit, kjapp og overfladisk forklaring (med sikkert mye (skrive)feil) det her, tror ikke du blir så mye klokere på den - lese en bok i stedet?

 

0x0ff

er hexadesimale tall. 0x forteller at tegnene som følger er av hexadesimal form.

 

#include

henter inn tekst fra andre filer, dette skjer før kompilering.

 

int main(),

er en funksjon med navn main som returnerer ett objekt av typen int og tar ingen parametere.

 

int,

er navnet på en type, dette tilfellet typen som beskriver at dette er et heltall.

 

Du kan lage egne funksjoner som f.eks:

int sum(int tall1, int tall2),

som er en funksjon med navn sum, som returnerer en int og som tar to parametere med navn tall1 og tall2; begge av typen int.

 

{,

viser at her følger koden til funksjonen main()

 

} på slutten av koden,

viser at her er koden til funksjonen main() ferdig.

 

int nArg1,

lager ett nytt objekt, også kalt variabel, av typen int med navn nArg1. All data har en type. Samme som at bilen din(nArg1) er et konkret objekt av typen kjøretøy(int).

 

count vet jeg ikke hva er - men jeg tror det er en skrivefeil; tror det skal egentlig være cout, som er en funksjon (som noen andre har skrevet for deg) for å skrive ut tekst.

 

return(0),

forteller at funksjonen skal avsluttes - og at den i dette tilfellet skal returnere ett heltall 0. Dette forteller programmer som eventuellt starter programmet ditt at det ble avsluttet uten problemer. Hadde det oppstått problemer kunne programmet ditt returnert noe annet enn 0, en "error kode".

 

int sum(int tall1, int tall2) funksjonen,

kunne f.eks. returnert summen av tall1 og tall2: return(tall1 + tall2);

 

 

main er navnet på funksjonen alle operativsystemer (som jeg vet om) leter etter inne i programmet ditt for å ha et sted å starte som standard.

 

Det hender Windows bruker winmain btw. - mulig dette er en macro eller noe slikt, jeg vet lite om det; bruker stort sett Linux.

Lenke til kommentar
Tror ikke den gjør så mye, for den kompileres ikke en gang.. :)

Hva mener du? Er det noe feil? Vet ikke hva koden gjør eller noe jeg da. Det er et utdrag...

 

"Følgende program er et eksempel på bruk av bitvise operatorer. Programmet initialiserer to variabler, og viser som utdata resultatet av å bruke OG, ELLER og EKSKLUSV ELLER på dem"

Har litt trøbbel med og skjønne C++ :oops:

Men jeg har så vidt lest... :roll:

Men jeg vil skjønne alt, jeg skal vel egentlig det av meg selv da så langt som jeg har kommet(lest ca. 60sider) Men.. :shrug:

 

count vet jeg ikke hva er - men jeg tror det er en skrivefeil; tror det skal egentlig være cout, som er en funksjon (som noen andre har skrevet for deg) for å skrive ut tekst.

Kraftig skrivefeil ja :oops:

 

Blir en teit, kjapp og overfladisk forklaring (med sikkert mye (skrive)feil) det her, tror ikke du blir så mye klokere på den - lese en bok i stedet?

Jeg skjønner litt mer ja, Takk :woot:

Lenke til kommentar

Det er bare et eksempel program på bitwise (operasjoner som kjører sammenligning bit for bit) ^ er det samme som Exclusive Or(Eksluderende eller)(XOR mange steder) Her er en tabell over svara:

1 ^ 1 = 0

0 ^ 1 = 1

1 ^ 0 = 1

0 ^ 0 = 0

 

& er det samme som And (Og)

1 & 1 = 1

1 & 0 = 0

0 & 1 = 0

0 & 0 = 0

 

| er det samme som Or (eller)

 

1 | 1 = 1

1 | 0 = 1

0 | 1 = 1

0 | 0 = 0

 

dette blir gjort binære på tall

0xff = 255 = 1111111

 

ff er heksadesimalt tall, for å gjøre binærtall litt mer menneskligere å lese

f er det samme som 15 (1111)

men hvis taller er 16, blir det (10000) som er det samme som 10 på heksadesimalt.

0x sier bare at tallet er heksadesimalt, akkurat som &H gjør i Basic og h gjør i Assembly.

 

Det er også noe som heter Logisk Og, Logisk Eller og Logisk Eksludernde Eller, disse skrives && || og ^^

Vet ikke helt hva som er forskjellen, men logisk And gir litt andre resultater (tror jeg)

 

Programmet ditt skriver bare ut resultater av bitwise operasjoner på skjermen. der den skriver << "n" betyr dette linjeskift

 

Det som står i " blir skrevet til skjermen.

 

return 0 gir svar 0 tilbake til operativ systemet, dette er det samme som true, og betyr at alt gikk bra.

 

Jeg tror jeg skriver for mye ;)

Lenke til kommentar
Det er bare et eksempel program på bitwise (operasjoner som kjører sammenligning bit for bit)

....

Det er også noe som heter Logisk Og, Logisk Eller og Logisk Eksludernde Eller, disse skrives && || og ^^

Vet ikke helt hva som er forskjellen, men logisk And gir litt andre resultater (tror jeg)

 

Forskjellen er som du sier, at de bitwise operasjonene sammenligner bit for bit, mens de logiske operasjonene sammenligner hele objektet som en helhet:

 

1 & 1 = 1 (bitwise Og)

1 && 1 = 1 (logisk Og; 1 og 1 er like så denne vil returnere 1)

11 & 10 = 10 (bitwise Og, vil returnere, i desimal form, tallet 3)

11 && 10 = 0 (logisk Og, 11 og 10 er ikke like så denne vil returnere 0)

 

Rett meg hvis jeg tar feil; har ikke testet dette eller brukt bitwise operasjoner så alt for mye + at jeg har helt i meg litt øl .. :)

Lenke til kommentar
Tror ikke den gjør så mye, for den kompileres ikke en gang.. :)

Hva mener du? Er det noe feil? Vet ikke hva koden gjør eller noe jeg da. Det er et utdrag...

 

Ja, det er noen skrive feil der - og det kan hende boken du leser på er litt gammel, for #include <iostream.h> er noe man gjorde i "gammle dager". :) Nå skal det være #include <iostream> og #include <cstdio>.

Disse skrivefeilene vil gjøre at koden ikke kompileres og du får meldinger om dette. Ikke feilmeldinger, for det er ikke programmet som gjør feil for en gang skyld; men han som lager det (eller han som skrev boken). :wink:

 

"Følgende program er et eksempel på bruk av bitvise operatorer. Programmet initialiserer to variabler


int nArg1;

nArg = 0x1234;

og


int nArg2;

nArg2 = 0x00ff;

 

Altså den deklarerer (forteller at "her er det") to variabler av typen "int" (heltall) og initialiserer dem (gir dem verdier) med tall. Tallene er i dette tilfellet av hexadesimal form, men dem kunne like godt vært av desimal form som 10 og 50, for eksempel.

 

, og viser som utdata resultatet av å bruke OG, ELLER og EKSKLUSV ELLER på dem"

Har litt trøbbel med og skjønne C++ :oops:

Men jeg har så vidt lest... :roll:

Men jeg vil skjønne alt, jeg skal vel egentlig det av meg selv da så langt som jeg har kommet(lest ca. 60sider) Men.. :shrug:

 

Tror du burde prøve å skrive inn et program og compilere det for å experimentere litt:

http://www.bloodshed.net/dev/devcpp.html

, er en veldig god compiler (ed. bruker en), som er fritt tilgjengelig. Prøv den, og fortell åssen det går! :) Prøv å lage et "Hello World!" program:

 


#include <iostream>



using namespace std;



int main()

{

 cout << "Hei Verden, dette er mitt eget program skrevet i C++!" << endl;

 cout << "Trykk enter for å avslutte programmet ... :)" << endl;

 cin.get();

 return(0);

}

 

Ta en tur innom IRC hvis du skulle trenge "live" hjelp; jeg henger på undernet på kanalen #c++.no , kaller meg "daysleper" :)

 

count vet jeg ikke hva er - men jeg tror det er en skrivefeil; tror det skal egentlig være cout, som er en funksjon (som noen andre har skrevet for deg) for å skrive ut tekst.

Kraftig skrivefeil ja :oops:

 

Blir en teit, kjapp og overfladisk forklaring (med sikkert mye (skrive)feil) det her, tror ikke du blir så mye klokere på den - lese en bok i stedet?

Jeg skjønner litt mer ja, Takk :woot:

 

Stå på! :yes:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...