En este post, me gustaría ofrecerte acerca de mapa de bits y su implementación en C utilizan para aplicaciones en tiempo real
¿Por qué se requieren mapas de bits
Paso 1:. Crear una matriz de bits Mapa Paso 2: Se calcula el índice de la matriz del mapa de bits y el cambio índice (¿Cuántos bits tiene que cambiar). Paso 3: Establecer el bit en el mapa de bits utilizando Paso 4: borrar el bit en el mapa de bits utilizando Por favor, encontrar el programa más adelante para un mejor entendimiento de los mapas de bits en C estilo # include # define SALIDA 100 # define BITMAP_LEN 2 / * Depurar salida * / / * matriz es 2 bit_array [0] y [1] * / }} / * Función / * En Bit- Mapas, hay dos opciones, o bien {/ * Aquí el número máximo de bits es 16 que van desde 1 .. 16 printf /> * / / * / * LÓGICA de la siguiente manera * / / * Se Dar salida como 0 ó 1 (Bit Posición 1 .. 16) * / printf («El bit_position:% d turno Índice:% d n «, bit_position, shift_index); / * Si es cierto conjunto * / } mientras (ch = 100!); Por favor, consulte en el blog para REGISTRO DE DEPURACIÓN DE EJECUCIÓN DE USAR EL MAPA BIT.
El uso de la matriz de bits, aplicaciones consiguen paralelismo a nivel de bit en hardware para realizar las operaciones de forma rápida
bit_map unsigned char [2];
; bit_map_array_index = (bit_position – 1) / 8
shift_Index = (bit_position – 1)% 8
; bit_map_array_index = bit_position / 8
; shift_Index = bit_position% 8
; bit_map [bit_map_array_index] | = (1 <
bit_map [bit_map_array_index] & = ~ (1 <
# include
# define BYTE_LEN 8
vacío printTheDebugOutput (unsigned char * bit_array)
{
int i, j;
for (i = 0; i
i, j);}
}
* Principal ()
* / int />
() {
bit_Map_array_index unsigned char, shift_index;
/ * Declarar la matriz de bits y intialised to Zero
* Esta BIT_MAP generalmente se asigna a un dominio.
* Aquí MAPA BIT (matriz de bits ) se utilizan para la depuración Mecanismo
* / unsigned char
bit_map [BITMAP_LEN] = {0};
* Set (OR |) o Desactivar (Y y) bits.
* /
no
scanf («% d» , y bit_position);
* Establece / desactiva el mapa de bits indica qué bits desea habilitar ;
* /
printf («¿Quieres habilitar / deshabilitar el bit (1 o 0) n»);
scanf («% d», & setOrUnsetBit);
/ * Averigüe el índice yy así como índice de cambio * /
shift_index = (bit_position-1)% 8;
if (setOrUnsetBit)
; {
/ * Quitar la matriz de bits * /
bit_map [bit_Map_array_index] & = ~ (1 <
;} printf />
printTheDebugOutput (bit_map);
printf />
«y por la salida a continuación, escriba 100 n»);
scanf («% d», & ch);
return 0;}