Manipuláció a bájtok és bitek


Az üzemeltető a gyakorlati alkalmazásának az inverziós minta

Funkciók Biteltolás balra (SHL) és a jobb oldali (SHR) oldalán. Az előző cikkben láttuk, az asztalon, hogy ha a magas rendű Biteltolás a bal és a jobb attribútum értéke 0, a szám megduplázódik (vagyis a hatalom kettő). Csak a műszak bitek és a gazdasági szereplők SHL és SHR. SHL üzemben működik százszor gyorsabb, mint egy normál hálózati operátor ^, tehát ha van szüksége a sebesség, célszerű elhelyezésére az üzemeltető.
Amikor dolgozik SHR üzemben van némi trükk. Ez a megállapítás teszi a fordított műveletet tekintetében a SHL. de ha a jobb szélén a készülék egy kicsit eltűnik örökre nyírás és a számítás nem, végül megfordult kapcsolatban SHL művelet. de a többi elveszett.

A processzor alkotja a 32 bites regiszterek. Ezeken a regiszterek csak helyet találni 32 bites szám, vagy 4 byte. Ha a szám nagyobb, akkor terjed nyilvántartásokban. Természetesen vannak jó kiegészítő regiszterek (társprocesszorokat. Raktak 80 bites számok). de mértéke jóval alacsonyabb, mint a fő nyilvántartások és tökéletesen működnek egy másik elv. Azonban, ha dolgozik tört számok, kiszámítjuk a gyökerek és a makrók nagyon kényelmes és praktikus.

Ahogy talán már érthető a 32-bites szám:

00000000 00000000 00000000 00000000

Mint látható, számos néggyel osztható bájt vagy 32 bit. Minden byte 8 bit. A rendszer segítségével a különböző makrók, tudjuk, hogy hozzáférjen az egyes bites szám, valamint csak egy junior és senior fele (16 bit) és az alsó és felső fele negyede ezt a számot (8 bit). Csak azért, hogy az érték az alsó bájt (rózsaszín), és egy makro LoByte.


Mint látható az eredménye 255. Hogy ez a szám megegyezik a bináris a low byte 11111111

A felső bájt (kék) van egy makró hibyte. Ez ugyanúgy működik, csak kap egy bájtos szám.


Az eredmény 15 és egyértelmű, hogy miért, nem igaz?

LoWord és Hiword

A fiatalabb és az idősebb fele annyi használt makrókat és LoWord Hiword volt. Ezek a makrók már használják a cikket a konzolt.


Eredmény: 65535 és 65280

Az értékek tetszőleges számú bit használható BIT makró. A szintaxis a következő:

BIT (a szám. Bit szám szám)

Gróf megy 0-31 bit. Ha a bit az 1-es szám, akkor a visszatérési értéke -1. Ha bit 0 ennek a számnak a visszatérési érték 0.

A vörös fény jelzi, hogy mely bitek által meghatározott funkciót.

Példa (meghatározása elérhető meghajtók a rendszerben):


Persze, van egy kis előre az API függvény (GetLogicalDrives). de meg akartam mutatni a gyakorlati alkalmazása a makrót. Valójában a függvény egy kicsit maszkot álló lemezeken a rendszerben:

A 0 bit megfelel
1 bit megfelel a B
2. bit megfelel a C
3. megfelel a bit D
Bit 4 megfelel E
és így tovább.

Macro bit szerint töltés bit. CHR funkció, egyszerűen abból a kívánt betűt, amelyek megfelelnek ezeknek a meghajtók.

BitSet és BitReSet

Beállításához egyes bit értékeket 1 vagy 0 lehet használni, és BitSet BitReSet makrók rendre. Visszatérési értéke - a konvertált beütések számát bit beállítást.

értéke = BitSet (a számot. Bit száma a szám)

értéke = BitReSet (a számot. Bit száma a szám)


Amikor a Windows API függvények akkor gyakran foglalkozik egyedi bájt és bitek számát. Ha valami nem világos ebben a cikkben igyekszünk elolvasni és megérteni újra. Ha majd nehezen megértést. akkor kérje a fórumon

Kapcsolódó cikkek