Come convertire BitArray
in un unico int
? Il modo più veloce pls ...Come posso convertire BitArray in single int?
risposta
private int getIntFromBitArray(BitArray bitArray)
{
if (bitArray.Length > 32)
throw new ArgumentException("Argument length shall be at most 32 bits.");
int[] array = new int[1];
bitArray.CopyTo(array, 0);
return array[0];
}
Wow ... Non pensavo che avrebbe funzionato per mettere tutti i bit in un unico valore intero - ma lo fa! – codekaizen
Riferiscilo: http://codereview.stackexchange.com/questions/3796/converting-binary-value-from-bitarray-to-an-int-and-back-in-c/3797#3797 È necessario controllare la lunghezza di bitArray – Ngm
Aggiunto controllo degli argomenti. –
private int getIntFromBitArray(BitArray bitArray)
{
int value = 0;
for (int i = 0; i < bitArray.Count; i++)
{
if (bitArray[i])
value += Convert.ToInt16(Math.Pow(2, i));
}
return value;
}
Puoi spiegare perché l'OP dovrebbe usare questa soluzione rispetto all'altra? –
@AustinHenley Ho scritto questa soluzione a scopo di debug. Posso scorrere il mio codice per vedere come viene convertito il numero. Non sono sicuro che tu possa farlo con la prima soluzione. – K4KNOWLEDGE
È anche interessante sapere che la prima soluzione non è disponibile su WinRT (probabilmente a causa del modo in cui i processori ARM salvano i numeri) –
refer a questo post (# 43.935.747). Un valore X è breve. Ho impostato due bit (6 e 10) come di seguito: short X = 1;
var result = X;
var bitsToSet = new [ ] { 5,9 };
foreach (var bitToSet in bitsToSet)
{
result+=(short) Math.Pow (2,bitToSet);
}
string binary = Convert.ToString (result,2);
Ora vorrei leggere il tutti i bit specifico dal valore X e metterlo in un array o un tipo po 'come bool Val1 = bit1, bool Val2 = bit2 ....
I Sono un principiante e penso che sia abbastanza semplice per voi ragazzi ..
OK ma dovresti renderlo '| =' e '(short) (1 << bitToSet)' per renderlo più ovvio a colpo d'occhio. Non è come se questo codice fosse incomprensibile, ma si basa sulla combinazione di alcune "coincidenze scelte con cura" invece di fare semplicemente la cosa giusta. – harold
- 1. OCaml - Come posso convertire int in stringa?
- 2. Come convertire int * in int
- 3. come convertire un int in una maschera di bit?
- 4. Come convertire l'array int in int?
- 5. Come convertire int in nsindexpath?
- 6. Come posso convertire una stringa in un int in Python?
- 7. Come posso convertire Int32 in Int in Swift?
- 8. Come convertire QString in int?
- 9. BitArray veloce in OCaml
- 10. Objective-C, come posso convertire un double in un int?
- 11. Come posso convertire da int a hex in Golang?
- 12. Come posso convertire int 90 minuti in DateTime 1:30?
- 13. Come posso convertire un int a due byte in C#?
- 14. Come posso convertire da int a Long in Java?
- 15. In Kotlin Come posso convertire un Int? a un numero
- 16. Come convertire Long in Int in Kotlin?
- 17. Come convertire int [] a int [,] - C#
- 18. Come convertire double in int in swift
- 19. Come convertire Nonetype in int o stringa?
- 20. Java: charAt convertire in int?
- 21. Come convertire un int in una stringa?
- 22. Come convertire il valore enum in int?
- 23. Come convertire NSIndexPath in Int in Swift?
- 24. Come convertire "Index" in "Int" in Swift?
- 25. Come convertire int in bigint in golang?
- 26. Come convertire int [] a byte []
- 27. Come posso convertire un int a un NSString?
- 28. come convertire int a uint
- 29. Come posso convertire la stringa [] nella lista <int>?
- 30. Come convertire IntPtr a int
BitArray per int Array o letteralmente un BitArray per un singolo intero? –
A numero intero singolo. –