2010-07-09 28 views
5

¿Qué tal una mordida, etc.¿Hay un tipo de datos .NET más pequeño que un byte?

+1

BitOperations: http://www.blackwasp.co.uk/CSharpLogicalBitwiseOps.aspx –

+0

@Shiftbit, enlace muy útil, gracias. – Shimmy

+0

bienvenido. :) No es un tipo de datos .NET pero le permitirá manipular los bits dentro de un byte. Usted mencionó bools, también podría considerar esto útil: Campos de bits - http://en.wikipedia.org/wiki/Bit_field –

Respuesta

14

? Incluso si tiene una matriz de booleanos, creo que están especificados para ocupar un byte cada uno.

Por supuesto, puede definir sus propios tipos de datos que tienen menos de 256 valores válidos (como Boolean) pero no puede hacer que ocupe menos de un byte en la memoria.

Como LBushkin señaló, hay tipos como BitArray y BitVector32 qué paquete con eficacia múltiples bits de manera eficiente - usted puede escribir su propio tipo NybbleArray si querías.

+0

Entonces, si quisiera definir un tipo de Nibble, debería hacerlo con Byte, a la derecha, ya que todavía está mejor que la matriz de 4 booleanos ... – Shimmy

+0

@Shimmy: Sí, eso es correcto. –

+0

Esta tabla es mejor ya que te dice el tamaño de cada tipo, a diferencia del primero :) http://msdn.microsoft.com/en-us/library/47zceaw7.aspx – Shimmy

1

No, byte es el más pequeño.

Esto puede ser útil: How can you nibble (nybble) bytes in C#?

+0

¿Un booleano no toma menos? – Shimmy

+0

¿Menos memoria? No. ¿Menos valores posibles? Sí. Si está tratando de implementar un tipo de Nibble, la mejor manera sería usar un BitArray/BitVector como se mencionó anteriormente o utilizar el enmascaramiento de bits en bytes. – Mandelbrot

4

No hay tipo de datos nativo más pequeño que el byte, sin embargo, si desea almacenar y manipular un grupo de bits empaquetados, puede utilizar BitVector32 o BitArray.

+0

Creo que voy a usar Byte simple, ya que BitVector tiene una longitud de 4 bytes (Int32) (al menos). – Shimmy

Cuestiones relacionadas