C-programozásnál ki tudja ezt a bitműveletes feladatot megoldani?
ha valaki tudja a választ kérem írja le, sajnos nem értek a bitműveletekhez.
1. Egy szám jobbról negyedik bitjéből csináljon 1est
2. Adja vissza egy szám jobbról számítva 5 bitjéből képzett új számot
Alap logikai műveletek:
ÉS: 1 és 1 = 1. Bármely más esetben 0.
VAGY: ha legalább az egyik tag 1-es, akkor 1 az eredmény.
Kettes számrendszer:
Jobbról balra haladva: az első szám x1*2^0, 2.: x2*2^1
pl. 1011 = 1*2^0 + 1*2^1 + 0*2^2 + 1*2^3 = 1+2+0+8=11
Ebből következik, hogy jobbról az n-edik szám a 2^(n-1)-nt jelöli.
A fenti logikai műveletek alkalmazhatók számokra is, ekkor minden egymás alatti számjegyre megcsinálod, az elején pedig kipótolod 0-val.
pl. 1011 és 1:
1011
0001
----
0001
=> Hogy a jobbról negyedik bitből, ami 2^3=8 1-est csinálj egyszerűen csak végzel egy logikai vagy műveletet:
10110 vagy 1000:
10110
01000
-----
11110
Az utolsó 5 bitet pedig egy egyszerű és művelettel előhivhatod:
pl. 1010 1010 és 1 1111 :
1010 1010 és
0001 1111
------------
0000 1010
És meg is van a szám.
Remélem érted a lényeget. :P
A házifeladatodat remélem senki nem fogja megcsinálni.
Kis segítség az első válaszolóhoz: a bitenkénti műveletek operátora C-ben: | (vagy) & (és) ^ (xor - kizáró vagy) ~ (negálás). Ezek mindegyike bitenként végrehajtja az adott műveletet.
Szóval ilyen még nem volt ezelőt, viszont EZT egy előzőről szedted....:P
Akkor volt ilyen már,vagy nem? Kicsit mintha belekeveredtél volna.. lehet, hogy mégiscsak házi feladat? :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!