2013-01-10 11 views
5

Ho una stringa di otto 1s e 0s con spazi nel mezzo, qualcosa come "1 0 0 1 1 0 1 0", che voglio convertito in un int. C'è un modo semplice per fare questo? Mi sento come se una specie di analisi di linq lo facesse, ma non so nemmeno cosa fare con i personaggi una volta trovati.Converti la rappresentazione di stringa del numero binario in int in C#

+0

Giusto per chiarire, la stringa '1 0 0 1 1 0 1 0' deve essere analizzata come due, quattro valori bit:' 1001' e '1010'. Quindi convertito in esadecimale. Corretta? –

risposta

14

Non è necessario alcun LINQ.
Convert.ToInt*() accetta un fromBase parametro opzionale, che deve essere 2, 8, 10, o 16.

Convert.ToInt32("1 0 0 1 1 0 1 0".Replace(" ", ""), 2) 
+0

Bene, questo lo rende un problema molto semplice, quindi hah. Grazie mille! – MLavine

1

Un'alternativa @ risposta di SLaks (ma solo per analizzare Hex) è

Int32.Parse(hexString, System.Globalization.NumberStyles.HexNumber); 

C'è nessun equivalente per binario, tuttavia, quindi la sua è una migliore risposta generica.

+0

Mi sono sbagliato. Rimosso il commento precedente. – Tilak