1:1 Übersetzt wäre das:
Und die Kurzfassung mit gleichem Ergebnis:
B4X:
Dim temperatureSign As Byte = Bit.And(Bit.ShiftRight(rawData(4), 7), 1)
Dim temperatureBase As Int = Bit.And(rawData(4), 0x7f)
Dim temperatureFraction As Float = rawData(5) / 100.0
temperature = temperatureBase + temperatureFraction
If temperatureSign = 1 Then
temperature = temperature * -1
End If
Und die Kurzfassung mit gleichem Ergebnis:
B4X:
Dim temperatureSign As Boolean = Bit.And(rawData(4), 0x80) <> 0
temperature = Bit.And(rawData(4), 0x7f) + (rawData(5) / 100.0)
If temperatureSign Then
temperature = -temperature
End If