hallå alla Det är ett enkelt problem... ...så det var så lätt i VB också... Det är lika lätt i de flesta språk, bara du kan göra en logisk operation på två variabler/värden så fungerar det. men följdfrågan blir: hur visar jag den binära koden i en textbox? Kolla hjälpen om de skriver något om det där, har aldrig behövt skriva ut den binära representationen med VB.NET så jag vet tyvärr inte. Anledningen till att jag ville ha något enkelt kommando var att det skall utföras för ca 36000 olika int-variabler. Det kan bli lite tidsödande efter ett tag. Men jag kan inte hitta något, så det får bli som du säger. Det går att göra snabba funktioner om det är det du behöver. Jag tog mig friheten att göra en funktion du kan använda om du vill. Funktionen funkar ju bra, tack för den!bit-hantering på enkelt sätt?
Jag skulle behöva några enkla kommandon för att komma åt de binära bitarna i 12 bitars tal. (Typen är Integer, men det är bara de 12 LSB som är intressanta. Mao: talen är aldrig större än 4095)
Anledningen till att jag vill kolla specifika bitar är att beroende på vilken av två RadioButtons som är True ska jag plocka bit 11 och 9-0, alternativt bit 10 och 7-0.
Man skulle ju kunna lösa det med division med 2, men det känns väldigt klumpigt...
Nån som har en tanke om detta?Sv: bit-hantering på enkelt sätt?
4095 = 0000 1111 1111 1111
--------------------------^
Till exempel bit nr 5 ovan har ju värdet 16. Vill du testa om den är en etta eller nolla tar du bara variabeln du har värdet i AND 16
Tex
<code>
Dim Tal As Integer = 4095
' 0000 1011 1111 1111 = 3071
' Ovanstående säger att plocka bitarna 11 och 9-0
Dim Mask As Integer = 3071
Dim Result As Integer = Tal And Mask
'Result innehåller nu enbart ettor eller nollor på positionerna där masken är 1.
'Alla positioner där masken är 0 blir biten också 0.
</code>
Du får lov att bearbeta exemplet ovan för att göra det du vill, men grunderna har du där.Sv:bit-hantering på enkelt sätt?
Det är de små grejerna som gör det. TackarSv: bit-hantering på enkelt sätt?
Sv:bit-hantering på enkelt sätt?
Gör jag så här, kommer svaret i Hex
TextBox2.Text = Format(mask, "x").ToString
"b" istället tycker jag verkar logiskt, men det funkar inte.Sv: bit-hantering på enkelt sätt?
Annars kan du ju lätt skriva en funktion som skriver ut bitarna.Sv:bit-hantering på enkelt sätt?
Tack för allt.Sv: bit-hantering på enkelt sätt?
36000 int variabler borde inte vara något problem.
Använd dig av Shift operatorn när du ska skriva ut bitarna i en funktion så får du väldigt snabb kod.Sv: bit-hantering på enkelt sätt?
<code>
Public Function IntToBin(ByVal value As Integer, ByVal bits As Byte) As String
Dim Ret As New System.Text.StringBuilder
Dim Mask As Long = Math.Pow(2, bits) - 1
Dim TopMask As Long = Math.Pow(2, bits - 1)
Do Until bits = 0
Ret.Append(Convert.ToInt16((value And TopMask) > 0).ToString)
value <<= 1
bits -= 1
Loop
Return Ret.ToString
End Function
'Använd som
IntToBin(1024, 12) '1024 står för talet du vill få de 12 lägsta bitarna från
</code>Sv: bit-hantering på enkelt sätt?
Men det sista inlägget var nog exakt vad jag letade efter.