Hej Såhär? Hej Jag jobbar mycket med att programmera maskiner för fabriksautomation tex att styra monetringar av detaljer för bilindustrin. Näääääääääääääää............ du gode Trash Mittåt Mittåt................. Tänk på att bit_nr är nol indexerad. Till alla:Sv: Läsa en bit i en integer
En Integer i Vb är alltid 16 bitar, två bytes.
Om du förtydligar dig lite så fixar Vi det.
Kan passa på att köra min gamla "käpphäst"
I alla moderna språk nu även .net så är Integer
detsamma som Vi i Vb6 kallar Long , dvs 4 Byte 32 bitar
Du skall aldrig använda Integer i VB6 använd Long.
När du konverterar till .net ändra alla ord Long till Integer
/SvenSv: Läsa en bit i en integer
Tal And 2 ^ bit_nr
Resultatet kommer skilja sig från 0 (=True) om biten är true, om du nu inte menar bitarna som dom representeras i minnet...
/JohanSv: Läsa en bit i en integer
Njaaaaaaaaa. JohanD . Bit 3 betyder som minst 4 i Raw hex
Om du då skriver
Private Sub Command1_Click()
'Tal And 2 ^ bit_nr
Dim ret As Long
ret = 4 And 2 ^ 3
Label1.Caption = ret
End Sub
Så blir svaret att bit 3 inte är satt.
Sen blir det struligt med Intel Hex då motsvarar bit 3 bit 11 i en Integer.
Jag är lite ute på "Fisses mosse" men ämnet är intressant.
/SvenSv: Läsa en bit i en integer
Där kan jag på ett enkelt sätt läsa tex bit 1 i en integer
Dim nisse As Int16 = 2
Do Until Nisse.1 = True
bla()
Loop
tänk om det var lika enkält i .NET!!
//MagnusSv: Läsa en bit i en integer
Nu är du på "Fisses mosse"
Betänk detta :
Private Sub Command1_Click()
Dim dininteger As Integer
dininteger = 123
If CBool(dininteger And (2 ^ 3)) Then
'True
MsgBox "True"
Else
MsgBox "False"
'False
End If
End Sub
'I detta exempel är bit 3 inte satt dvs 0(noll)
/SvenSv: Läsa en bit i en integer
Du har rätt Trash "Du Skall Skjutas" fastän jag tycker att du vändt på True False
/SvenSv: Läsa en bit i en integer
Bit 1 = 2 ^ 0 = 1
Bit 2 = 2 ^ 1 = 2
Bit 3 = 2 ^ 2 = 4
Bit 4 = 2 ^ 3 = 8
osv...
Så det ska i så fall vara
Dim Tal as Integer
Dim bit_nr as integer
bit_nr = 3
If Tal And 2 ^ (bit_nr - 1) Then
Debug.Print "Bit(" & bit_nr & ") = 1"
Else
Debug.Print "Bit(" & bit_nr & ") = 0"
End IfSv: Läsa en bit i en integer
Har man programmerat assembler är allt alltid nollindexerat, och "option base" förbjudna ord...