Hozzászólások
-
SzerzőBejegyzés
-
A forgatás elegáns és átlátható. Főleg egy enummalenum Bitek {B0 = 1 << 0,...};De simán használhatod a számokat is, ha értedB2 = 4,...de a függvényben is:function(4)
Nem ez így hülyeség.Mégegyszer:vany 8 bitedxxxxxxxxA 0. bitxxxxxxx1b = 1 = 2^0az 1. bitxxxxxx1xb = 2 = 2^1a 2. bitxxxxx1xxb = 4 = 2^2stb.balsa forgatáseredeti szám: 00000001bmost forgassuk 1x: 00000010bkétszer: 00000100bC nyelvben a forgatás az a << operátor (forgatott = forgatni való << hányszor forgassuk)azaz: 1 << 0 = 1b = 1 = 2^01 << 1 = 10b = 2 = 2^11 << 2 = 100b = 4 = 2^1azaz 1 << ahanyadik_bitet_akarunk, lehet rá makrót írni pl: MAKRO(ahanyadik_bitet_akarunk) formában, definiálhatjuk is a számokat #define Dx = 1 << x, vagy számmal is, de használhatjuk közvetlenül az utasítást, sőt enumot is csinálhatunk.Ha két bitet akarunk egyszerre, az a bináris vagy művelet |.
No, most akkor mi a probléma?Van 8 bited, amit egy pointer tartalmaz és a
Természetesen 0x, meg 0b C-ben, csak lusta voltam… meg közben a pólós csajokat nézem és egy kicsit… na… szóval….
Viszont a ||, az hiba, mert az csak |.
Nem a h, azt jelenti, hogy hexadecimális a b, az az, hogy bináris.Látos, pl. az a gond, hogy a 3, az nem a 3. bit, hanem a nulladik + az első, azaz (1 | 2), azaz (1b | 10b), vagy, ha úgy tetszik (1 << 0) | (1 << 1)
Azért nem jó, mert a 4-es szám az nem a negyedik bit, hanem a harmadik4h -> 100bneked ez kell: 00001000b, ami 8. (Ez az emberi 4. bit a programozási 3., mert van egy 0. is)Ezt az 1-es szám forgatásával tudod legkönyebben elérni.Ezt C-ben így tudod megtenni "1 << bit_sorszama"Szerk: Természetesen ez is megy:
Jé, mit találtam…Akik nem kizárólag kompjúteren szocializálódtak, azok esetleg tudják, hogy mik ezek. 🙂
No, mégegy részeges hír…Nem értik meg, hogy Ivan Ukhov azért mérette meg korábban magát részegen, hogy a többieknek is legyen esélye.... kellett gúnyolni... most megkapták. 😀
-
SzerzőBejegyzés
legutóbbi hsz