Kezdőoldal » Számítástechnika » Programozás » Adott egy 129 elemű tömb,...

Jhanee kérdése:

Adott egy 129 elemű tömb, tömbfeltöltés: 1. eleme: 0x33, további elemek oszthatók 3-al és 5-el. Hány olyan elem van amelynek a 3-ik és 4-ik bit-jén 1-es található? Hány darab elem van a tömbben amely az ASCI kód tábla értékével azonos értékű?

Figyelt kérdés

eddig jutottam:

int main()

{


int t[129],i=0;

t[0]=0x33;

int szam=0x33,bitdb=0,ascidb=0;



while(i<129)

{

t[i]=szam;


if((szam%15)==0)

{


if((t[i]=0b00110000)==0b00110000) //bitmaszkolás

{


bitdb++;


}


if(szam<127) // ASCI tábla 127-ig van

{

ascidb++;

}

i++;

}

szam++;

}



return 0;

}

0x33 az 51, a kérdésem az hogyan lehetne megoldani hogy debuggolás-nál a tömb kezdő értéke ez legyen és ne 60 ami osztható 15-el, valamint jó-e így ilyen formában a bitmaszkolás és hogyan kivitelezhető hogy a debug ablakban egyszerre látszódjanak a tömb elemei,a bitdb és az ascidb?



2014. márc. 20. 14:41
 1/4 iostream ***** válasza:

1. A C++ nem ismeri a 0b... alakú literálokat. Max a te fordítód tartalmaz egy ilyen kiegészítést.

2. A biteket jobbról számoljuk (függ a platformtól, de most itt jobbról) és többnyire 0-tól indexeljük, tehát a 3. bit egy bájtban a 00001000 és nem a 00010000. Itt persze a 3. és 4. bit meg fog egyezni, függetlenül attól, hogy merről nézzük.

3. Ez mi?

if((t[i]=0b00110000)==0b00110000)


Értékül adja t[i]-nek X-t, aztán összehasonlítja X-szel. Ez mikor lesz nem igaz? Bitenkénti összehasonlításra a bitműveletek valók: &, |, ^.

2014. márc. 20. 15:34
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

közbe rájöttem a hibáimra:

i-nek eleve rossz kezdőértéket adtam, 1-től kell indítani mivel a 0-ik elemet ugye már meghatároztam

a maszkolást itt valüóban elírtam:

if((t[i]&0b00011000)==0b00011000) ez a helyes

Ez nem C++, hanem C, a 0b az jelenti hogy binárisan adtam meg.

2014. márc. 21. 10:53
 3/4 iostream ***** válasza:
Tökmindegy, a C sem ismeri ezt.
2014. márc. 21. 14:25
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
codeblocksot használok, ebbe a gcc ismeri
2014. márc. 25. 14:16

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!