Hirdetés
- ZIDOO médialejátszók
- Egy vagy két tápkonnektor lesz az új csúcs-GeForce-on?
- Hordozható NAS-sal készül novemberre a UnifyDrive
- VR topik (Oculus Rift, stb.)
- Milyen TV-t vegyek?
- Gaming notebook topik
- Ami Kínában OnePlus Pad Pro, az errefelé mégis csak Pad 2 lett
- LG LCD és LED TV-k
- Ventilátorok - Ház, CPU (borda, radiátor), VGA
- HiFi műszaki szemmel - sztereó hangrendszerek
Hirdetés
-
Texasban készül az első 3D-nyomtatott hotel
it A daru méretű 3D-nyomtatóval most egy hotelt nyomtatnak a sivatagba, rétegenként.
-
Jövő hónapban Xboxon is kipróbálható lesz a Fragpunk
gp A bejelentéssel együtt egy friss előzetest is kaptunk, amiben új hősök is láthatóak.
-
Elstartolt az Ulefone 5G-s, hőkamerás strapatabletje
ma Mindent egyszerre kínál egy készülékben, hagyományos Armor 4 Ultra is akad.
Új hozzászólás Aktív témák
-
-
válasz t.timikee #196 üzenetére
Hali!
Szóval, az elején szögezzük le, hogy ebben a formában a feladat megoldása értelmetlen, azt is leírom majd a későbbiekben, hogy miért.
Nagyon fontos szabály, hogy egy feladat EGYÉRTELMŰEN ÉRTELMEZHETŐ legyen ill különböző módszerekkel történő megoldása esetén is AZONOS EREDMÉNY jöjjön ki.
Tehát értelmezzük a feladatot.
Bemenő adatok: V1,V2(eax,ebx) 32 bites egész
módosított adat: al regiszter ami 1 vagy 0, 8bites egész számAL=(V1 minden bitje >= V2 megfelelő bitje)?1:0
Ez egy feltételes értékadás c/c++-ban, magyarul ha a feltétel IGAZ(V1 minden bitje >= V2 megfelelő bitje), akkor AL=1, ha a feltétel HAMIS, akkor AL=0a "minden bitje" vs. "megfeleő bitje" azt jelenti, hogy az első változó(V1->eax) minden bitjét(32 bit), össze kell hasonlítani a második változó(V2->ebx) minden, azonos helyiértékű bitjével.
A legmagasabb helyiértékű bit(32 bites szám esetén) 31, a legkisebb meg 0.
Tehát a feladat, hogy eax 31. helyiértékű bitjét hasonlítsuk össze ebx 31. helyiértékű bitjével, aztán a 30.-kat a 30.-kal, egészen míg el nem jutunk eax 0. helyiértékű bitjének ebx 0. helyiértékű bitjével való összehasonlításig.Mivel kettes(bináris) számrendszerről beszélünk a bit értéke 0(alacsony) vagy 1(magas) lehet. Tehát az azonos helyiértékű bitek összehasonlításakor 4 eset állhat fenn.
0 és 0, 0 és 1, 1 és 0, 1 és 1.
Most helyettesítsük be a feltételbe, eax adott bitje >= ebx eax-szel azonos helyiértékű bitje
0 és 0 esetén IGAZ, mert egyenlő
0 és 1 esetén IGAZ, mert nagyobb
1 és 0 esetén HAMIS, mert kisebb
1 és 1 esetén IGAZ, mert egyenlőMost pedig jöjjön, hogy miért is értelmetlen a feladat megoldása.
Két módszer amit alkalmazhatunk, hogy vagy 31. bittől megyünk a 0. bit írányába(balról jobbra) vagy a 0. bittől megyünk a 31. bit írányába(jobbról balra). DE, elöbbi esetben teljesen felesleges a 31-től 1. bitek összehasonlítása hiszen az utolsó 0. helyiértékü bit összehasonlításakor veszi vel a végleges értékét AL. Az utóbbiban meg teljesen felesleges a 0-tól 30. bitek összehasonlítása hiszen az utolsó 31. helyiértékü bit összehasonlításakor veszi vel a végleges értékét AL. Nem is beszélve arról, hogy a két módszer két különböző eredményt ad ill. adhat.
Na ezért értelmetlen a feladat megoldása.A feladatot aki feladta, nagy valószínüséggel az volt a szándéka, hogy gyakoroljátok a bitműveleteket, a fenti lehetőség fel sem merült benne.
A feladatot többféleképpen lehet "értelmessé" tenni. Én azt választottam, hogy megszámoljuk hányszor lesz igaz ill hamis a feltétel a bitművelet során, ha az igaz a több akkor AL=1, ha a hamis akkor AL=0, ha meg egyenlő akkor AL=-1.
Itt annyit azért még hozzáfűznék hogy hamis kevesebbszer fordul elő(mint ahogy feljebb látszik), ezért a >= relációt modosítani kellen egyenlőre, így 0 és 1 esetén is hamis lenne.Várom válaszod, megjegyzésed, kérdésed stb.
Ha minden tiszta és a módosítással is egyetértesz, akkor megcsinálom a kódót is.Fire.
Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Ozeki Kft
Város: Debrecen
Cég: Ozeki Kft
Város: Debrecen