Come si digita il letterale binario in VB.NET?Come si digita il binario letterale in VB.NET?
&HFF // literal Hex -- OK
&b11111111 // literal Binary -- how do I do this?
Come si digita il letterale binario in VB.NET?Come si digita il binario letterale in VB.NET?
&HFF // literal Hex -- OK
&b11111111 // literal Binary -- how do I do this?
Si potrebbe definirlo come stringa e poi analizzarlo:
myBin = Convert.ToInt32("1010101010", 2)
Non è così.
VB.NET supporta decimale (senza prefisso), ottale (con &O
prefisso), ed esadecimale (con &H
prefisso) integer literals direttamente.
Ampliando la risposta di codymanix ... Si potrebbe avvolgere questo in un estensione ad Archi, e aggiungere il controllo di tipo ...
qualcosa insieme le linee di:
<Extension> Public Function ParseBinary(target As String) As Integer
If Not RegEx.IsMatch(target, "^[01]+$") Then Throw New Exception("Invalid binary characters.")
Return Convert.ToInt32(target, 2)
End Function
Questo permette quindi, ovunque ci sia una stringa di valore binario, dicono "100.101.100.101", si può fare:
Dim val As Integer = "100101100101".ParseBinary()
Nota che per utilizzare l'estensione < >, è necessario importare System.Runtime.CompilerServices ed essere in esecuzione su Framework 3.5 o successivo.
A partire dal 15 VB.NET v'è ora il supporto per letterali binari:
Dim mask As Integer = &B00101010
È possibile anche includere trattini come separatori numerici per rendere il numero più leggibile senza modificare il valore:
Dim mask As Integer = &B0010_1010
Sembra molto utile. Mi piacerebbe poter aggiornare a 3.5 –
Yah, tra estensioni, LINQ e letterali XML, ... 3.5 spazza via 2.0! :) – eidylon