Mitenkäs C onnistuu haluttujen bittien päälle laitto, esim 2. ja 8. bitti päälle?
Bitti päälle?
5
983
Vastaukset
- 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
- 1077803
Siekkilässä ajettu ihmisten yli- mitä tapahtui? Länsi-Savo ei ole uutisoinut asiata
Manneja, vaiko matuja?1166115- 835207
- 1414573
Alavuden sairaala
Säästääkö Alavuden sairaala sähkössä. Kävin Sunnuntaina vast. otolla. Odotushuone ja käytävä jolla lääkäri otti vastaan113240- 623044
- 582958
Törkeää toimintaa
Todella törkeitä kaheleita niitä on Ylivieskassakin. https://www.ess.fi/uutissuomalainen/8570818102464- 612447
Hei........
Pelkkä sun näkeminen saa mut hymyilemään pitkin iltaa. Oot niin 🤩😘 Edellinen poistettiin.562076