integer na pole boolean   zodpovězená otázka

VB.NET

Dobrý den,

věděl by někdo jak by se dalo přistupovat na jednolivé bity celočíselného datového typu(integer, uinteger) ?

UInteger má 4 byte, já bych se potřeboval dostat k samotným bite 32x0/1.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Buď si můžete tuto věc dělat sám přes bitové operace, nebo máte možnost použít BitVector32 případně BitArray.

Jak to dělat sám? Jednoduše:

Dim data As UInteger = 0
data = data Or 1   'nastavit nultý bit na 1
data = data Or 2   'nastavit první bit na 1
data = data Or 4   'nastavit druhý bit na 1
If (data And 8) = 8 Then ...   'pokud je čtvrtý bit nastaven na 1
data = data And UInteger.MaxValue - 16   'nastavit pátý bit na 0
If (data And 32) = 0 Then ...  'pokud je šestý bit nastaven na 0

Kdyžtak si to rozepište ve dvojkové soustavě, ať je vám jasné, jak se s tím Or a And zachází. UInteger.MaxValue jsou samé jedničky, UInteger.MaxValue - 16 jsou samé jedničky, akorát nula na pátém bitu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji za odpověď.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback