Bitti päälle?

Jwjaed

Mitenkäs C onnistuu haluttujen bittien päälle laitto, esim 2. ja 8. bitti päälle?

5

958

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Samat kuin C-kielessä

      Bittitason operaattorit ovat samat kuin C-kielessä. C :ssa ne voi yliladata, joten voit käyttää erityisttä bittivektoriluokkaa, josta lisää tietoa doksuissa.

      Voit hakea tarkempaa ohjetta enkuksi sanoilla bitwise operators C tai C . Tässäpä lyhyesti:

      AND &
      OR |
      XOR ^
      BNOT ~

      Näistä kolme ekaa voi yhdistää =-merkin kanssa tehden operaattorit &= |= ja ^=. Esim. a &= b on sama kuin a = a & b. Sama juttu kuin =:n ja muiden tuttujen kanssa.

      Esim. toinen bitti on desimaalilukuna 2, eli 2 potenssiin 1. Silloin voit asettaa vaikkapa muuttujassa a sen näin

      a |= 2

      Vastaavasti 8. bitti on 2^7, eli 128. Sitenpä sanot, että a |= 128.

      Nuo luvut voi ilmaista myös heksoina, jos haluaa.

      Lisäksi on >, jotka siirtävät bittejä. Katso ne operaattorit jostain oppaasta, niin osaat sitten kaikki.

      • Jwjaed

        Kiitoksia noilla ohjeilla sain jotakin aikases, vielä semmoista mitenkäs tuo potenssi onnistuu C :ssa?


      • hemmoit
        Jwjaed kirjoitti:

        Kiitoksia noilla ohjeilla sain jotakin aikases, vielä semmoista mitenkäs tuo potenssi onnistuu C :ssa?

        a = a | (1 1
        1 -> 2

        jne...


      • On potenssi
        Jwjaed kirjoitti:

        Kiitoksia noilla ohjeilla sain jotakin aikases, vielä semmoista mitenkäs tuo potenssi onnistuu C :ssa?

        Yleistä potenssioperaattoria ei C -kielessä ole, vaan joudut käyttämään math-kirjaston pow-funktiota. Kahden potensseja voi laskea liu'uttamalla bittejä, kuten toisessa viestissä jo näytettiin.

        Jos käytät kääntäjään optiota -ffast-math (tai vastaava, tuo on GCC:n optio), niin pow-kutsusta tulee yleensä hyvin tehokasta koodia. Ei kannata siis välittää siitä, että se on ihan oikea funktio.


      • Jwjaed
        On potenssi kirjoitti:

        Yleistä potenssioperaattoria ei C -kielessä ole, vaan joudut käyttämään math-kirjaston pow-funktiota. Kahden potensseja voi laskea liu'uttamalla bittejä, kuten toisessa viestissä jo näytettiin.

        Jos käytät kääntäjään optiota -ffast-math (tai vastaava, tuo on GCC:n optio), niin pow-kutsusta tulee yleensä hyvin tehokasta koodia. Ei kannata siis välittää siitä, että se on ihan oikea funktio.

        Kiitoksia kaikille auttaneille.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. En voi jutella kanssasi

      tietenkään, mutta täällä voin sanoa sinulle, että se sinun hiljaisuutesi ja herkkyytesi eivät ole heikkoutta. Ne ovat ih
      Tunteet
      40
      5161
    2. Trump ja Vance murskasivat ja nolasivat Zelenskyn tiedotusvälineiden edessä Valkoisessa talossa.

      Jopa oli uskomaton tilaisuus Valkoisessa talossa. Zelensky jäi täydelliseksi lehdellä soittelijaksi suhteessa Trumpiin j
      Maailman menoa
      518
      1740
    3. Kokoomus haluaa hoitaa flussat yksityisellä, jotta säästettäisiin rahaa ja aikaa

      Mies hakeutui Terveystalo Kamppiin flunssaoireiden takia helmikuisena sunnuntai-iltana. Diagnoosiksi kirjattiin influens
      Maailman menoa
      77
      1100
    4. Rakkaus ei iloitse vääryydestä vaan iloitsee yhdessä TOTUUDEN kanssa.

      Tajuatteko, että jotkut ihmiset pitävät siitä, kun toiset kaatuvat? He nauttivat siitä, kun toiset mokaavat tai käyttävä
      Idän uskonnot
      359
      1008
    5. Koska olet rakastellut

      Kaivattusi kanssa viimeksi?
      Ikävä
      77
      943
    6. Anteeksi Pekka -vedätys

      Apuna Ry:n somessa levinnyt Anteeksi Pakka -kampanja saa aina vaan kummallisempia piirteitä. ”Mä pyydän anteeksi. Mä
      Maailman menoa
      53
      931
    7. Kumpi tästä

      Teidän tilanteesta teki vaikeaa? Sivusta
      Ikävä
      59
      870
    8. Kaikkia ei voi miellyttää

      Eikä ole tarviskaan. Hyvää huomenta ja mukavaa perjantaita. 😊❄️⚜️✌🏼❤️
      Ikävä
      228
      814
    9. Mikä on kaivattusi ärsyttävin piirre?

      Mun kaivattu on erittäin vastahakoinen puhumaan itsestä. Kääntää puheenaiheen aina muuhun kun hänestä tulee puhetta.
      Ikävä
      50
      803
    10. Päivi Ollila on tehnyt kunnallisvalituksen saadakseen pidettyä Tarja Pirkkalaisen virassa

      Kaupunginhallituksen puheenjohtaja Päivi Ollila on tehnyt kunnallisvalituksen kaupungin johtamisjärjestelyiden muutokses
      Haapavesi
      58
      738
    Aihe