Come potrei fare per convertire un bytearray in un array di bit?Converti array di byte in array di bit?
risposta
Il modo ovvio; utilizzando il costruttore che prende un array di byte:
BitArray bits = new BitArray(arrayOfBytes);
Dipende da cosa si intende per "matrice di bit" ... Se vuoi dire un'istanza della classe BitArray
, la risposta di Guffa dovrebbe funzionare bene.
Se si desidera veramente una serie di bit, sotto forma di un bool[]
per esempio, si potrebbe fare qualcosa di simile:
byte[] bytes = ...
bool[] bits = bytes.SelectMany(GetBits).ToArray();
...
IEnumerable<bool> GetBits(byte b)
{
for(int i = 0; i < 8; i++)
{
yield return (b & 0x80) != 0;
b *= 2;
}
}
La risposta è più appropriata della risposta sopra perché il risultato contiene gli zeri iniziali. +1 – Nolesh
public static byte[] ToByteArray(this BitArray bits)
{
int numBytes = bits.Count/8;
if (bits.Count % 8 != 0) numBytes++;
byte[] bytes = new byte[numBytes];
int byteIndex = 0, bitIndex = 0;
for (int i = 0; i < bits.Count; i++) {
if (bits[i])
bytes[byteIndex] |= (byte)(1 << (7 - bitIndex));
bitIndex++;
if (bitIndex == 8) {
bitIndex = 0;
byteIndex++;
}
}
return bytes;
}
Solo curioso .. Non vuole la funzione dall'altra parte? !! –
public static byte[] ToByteArray(bool[] byteArray)
{
return = byteArray
.Select(
(val1, idx1) => new { Index = idx1/8, Val = (byte)(val1 ? Math.Pow(2, idx1 % 8) : 0) }
)
.GroupBy(gb => gb.Index)
.Select(val2 => (byte)val2.Sum(s => (byte)s.Val))
.ToArray();
}
È possibile utilizzare BitArray
per creare un flusso di bit da un array byte
. Ecco un esempio:
string testMessage = "This is a test message";
byte[] messageBytes = Encoding.ASCII.GetBytes(testMessage);
BitArray messageBits = new BitArray(messageBytes);
- 1. Converti array di byte in file wav
- 2. Converti ByteBuffer in byte array java
- 3. Converti int in array di byte in C?
- 4. Converti array di byte in io.read in golang
- 5. Converti UIImage in array di byte in swift
- 6. Converti lista <byte[]> in un byte [] array
- 7. Converti tipo di dati 'lungo' di array di byte
- 8. Converti array di byte di stringa utilizzando Transact-SQL
- 9. array di byte in pdf
- 10. array di byte in groove
- 11. Converti byte in bit in python
- 12. converte array di stringhe in array di byte
- 13. Converti array JSON in normale array Java
- 14. Converti array in JSON
- 15. bool array vs bit array in C
- 16. Converti array in JSON
- 17. Int a byte array
- 18. Byte Array in Python
- 19. Come convertire l'immagine in array di byte e array di byte in stringa Base64 in Android?
- 20. php array di bit a bit
- 21. Come convertire un array di byte in un array int?
- 22. Converti char [] array di String
- 23. Copia array di byte in un altro array di byte in C#
- 24. Int16 ad array di byte
- 25. Converti byte [] in sbyte []
- 26. Converti array di strutture in IntPtr
- 27. Converti dizionario.keyscollection in array di stringhe
- 28. Converti array di caratteri in char unsigned *
- 29. Convertire un array di byte a una classe che contiene un array di byte in C#
- 30. Stringa su array di byte in php
Che dire di un array di bit preesistente? – Sir