Joachim Boll
Er det muligt at ændre bit direkte i en VB byte?
hvis ikke, er det så muligt at lave binære konstanter
eks.
A= 00001001b
jeg har ikke kunne finde nog i VB manualen
Ja, du kan godt ændre bits direkte i en "VB Byte". De forskellige bit har forskellige værdier (mindste bit først):
<pre>
Bitnr. Hexværdi Decimal
-------------------------
0 &H01 1
1 &H02 2
2 &H04 4
3 &H08 8
4 &H10 16
5 &H20 32
6 &H40 64
7 &H80 128
</pre>
Lad os sige at du har denne byte: 0000-0000, der simpelthen svarer til 0. Du vil gerne "tænde" bit 4 og bit 0, så byten kommer til at se således ud: 0001-0001 (11 i Hex)
Det gøres således i VB:
<pre>
Dim myByte As Byte
Let myByte = 0 ' ikke strengt nødvendigt
' Tænd byte 0 uanset hvad den er i forvejen
Let myByte = myByte Or &H1
'Tænd byte 4 uanset hvad den er i forvejen
Let myByte = myByte Or &H10
Debug.print Hex(myByte) & "h" ' skal gerne skrive 11h
</pre>
Lad os nu sige, at du gerne vil slukke disse bits igen:
<pre>
' Sluk bit 0 uanset hvad den er i forvejen:
Let myByte = myByte And (&HFF - &H1)
'Sluk bit 4 uanset hvad den er i forvejen
Let myByte = myByte And (&HFF - &H10)
Debug.print Hex(myByte) & "h" ' skal gerne skrive 0h
</pre>
For at sammenfatte det hele kort, så bruger du altså tabellen øverst, når du skal vælge en bit. Hvis du skal TÆNDE en bit, bruger du formlen:
<pre>myByte = myByte Or
bitVærdi</pre>
hvor
bitVærdi er en værdi fra tabellen.
Hvis du vil SLUKKE en bit, bruger du formlen:
<pre>myByte = myByte AND (&HFF -
bitVærdi)</pre>
Det skulle vist være det hele.
Software is here and now but rock and roll is forever.
[Redigeret d. 29/08-03 06:51:57 af Herluf Hermansen]