Ecco alcune semplici funzioni che potrebbero tornare utili qualora si avesse a che fare con dei valori binari.
Molto brevemente la funzione IntToBin restituisce una stringa rappresentante un numero in formato binario; per esempio il numero 5 verrà convertito in "101"
La funzione infersa sarà la BinToInt dove la stringa "101" verrà convertita nell'intero 5
La funzione SetBin permetterà di modificare un singolo bit della nostro valore. Ad esempio se modifihiamo il primo bit della nostra stringa "101" in zero otterremo "100" che convertito in intero (BinToInt) darà 4
Private Function IntToBin(ByVal myInt As Integer) As String
'***********************************************************
' Func: IntToBin (Creazione SB-16/06/2008; Mod.: )
' Desc: Converte un numero decimale in binario
' Par : myInt Integer Numero da convertire in binario
' Ret : Stringa Una stringa rappresentante myInt in formato binario
'***********************************************************
Return Convert.ToString(myInt, 2)
End Function
Private Function BinToInt(ByVal s As String) As Integer
'***********************************************************
' Func: BinToInt (Creazione SB-16/06/2008; Mod.: )
' Desc: Data una stringa rappresentante un valore binario viene
' convertita nel rispettivo numero long
' Par : s Stringa contenente il valore binario (es. 11001)
' Ret : Long Intero lungo restituito
'***********************************************************
Return Convert.ToInt32(s, 2)
End Function
Private Function SetBit(ByVal strInBit As String, _
ByVal NumBit As Integer, _
ByVal Value As Boolean) As String
'***********************************************************
' Func: SetBit (Creazione SB-16/06/2008; Mod.: )
' Desc: Data una stringa rappresentante un valore binario viene
' settato il rispettivo bit rappresentato da NumBit con il
' nuovo valore indicato in Value
' Par : strInBit Stringa contenente il valore binario (es. 11001)
' : NumBit Posizione del bit da variare all'inerno della stringa
' : Value Boolean indicante se il bit varrà 1 o 0
'***********************************************************
Mid(strInBit, strInBit.Length - NumBit, 1) = IIf(Value, 1, 0)
Return strInBit
End Function