Új hozzászólás Aktív témák

  • mgoogyi

    senior tag

    válasz Hunmugli #3797 üzenetére

    "Baloldalt egy char van, jobboldalt egy bit, ez nem fog menni".
    A char egy 8 bites szám és jobb oldalt nem bit van, hanem egy másik 8 bites szám, aminek jellemzően egy adott bitje tér el a többitől. Innentől pedig az alap bitműveletek kellenek (és,vagy,xor,negálás)
    Amit csinálsz, azt szokták flageknek hívni, minden bitnek megvan a saját jelentése.

    Nem kell túlgondolni az elképzelést:
    1101 & 0010 = 0000 (bit ellenőrzés)
    1101 | 0010 = 1111 (bit beállítás)

    Gyakorold valamennyit papíron, lehet az segít abban, hogy lásd, hogy melyik művelet mire jó.
    Pl. 1-es bittel éselés az adott bit értékét fogja kiköpni, 0-ással(1011) az adott bitet állítod garantáltan nullára.

    A flagekre visszatérve: ilyesmit szoktak csinálni, hogy:
    Option1 = 1 (001)
    Option2 = 2 (010)
    Option3 = 4 (100)

    Options = 101 esetén az option 1 és 3 van bekapcsolva.
    Bár lehet, hogy te pontosan erre akarod használni.

    "C bitjei balról jobbra vannak számozva, 0tól kezdődően 7ig. Function szerűen kéne"
    Szerintem jobbról balra számozd a biteket, akkor a természetes bitsorrendet kapod és a 001 = 1-et jelent majd decimálisan, az 100 meg 4-et pl.
    A 0-ás indexű bit a 2^0-át jelenti, az 1-es a 2^1, stb.stb.

    Ha kérdésed van bitekkel kapcsolatban, akkor kérdezz(akár privátban is rámírhatsz), ezzel relatíve sok gyakorlatom van.

Új hozzászólás Aktív témák