Implementación mapa de bits en C

Estimado lector,

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
El uso de la matriz de bits, aplicaciones consiguen paralelismo a nivel de bit en hardware para realizar las operaciones de forma rápida

  • 1 bit indica el valor se establece en una serie
  • bit 0 indica el valor no está definido en una serie
  • OR (|) se utiliza para establecer el bit (por ejemplo n | = (1 <
  • AND (&) se utiliza para borrar el bit ;? (por ejemplo n & = ~ (1 <
    Cómo implementar los mapas de bits

    Paso 1:. Crear una matriz de bits Mapa
    bit_map unsigned char [2];

    Paso 2: Se calcula el índice de la matriz del mapa de bits y el cambio índice (¿Cuántos bits tiene que cambiar).
    1 >
    ; bit_map_array_index = (bit_position – 1) / 8
    shift_Index = (bit_position – 1)% 8

    0 >
    ; bit_map_array_index = bit_position / 8
    ; shift_Index = bit_position% 8

    Paso 3: Establecer el bit en el mapa de bits utilizando
    ; bit_map [bit_map_array_index] | = (1 <

    Paso 4: borrar el bit en el mapa de bits utilizando
    bit_map [bit_map_array_index] & = ~ (1 <

    Por favor, encontrar el programa más adelante para un mejor entendimiento de los mapas de bits en C estilo

    # include
    # include

    # define SALIDA 100

    # define BITMAP_LEN 2
    # define BYTE_LEN 8

    / * Depurar salida * /
    vacío printTheDebugOutput (unsigned char * bit_array)
    {
    int i, j;

    / * matriz es 2 bit_array [0] y [1] * /
    for (i = 0; i for (j = 1; j <= BYTE_LEN; j + +) { if ( bit_array [i] y (1 <<(j-1))) { printf («En BIT_MAP [% d] la posición de Bit SET:% d n»,
                                       i, j);}

    }}
    }

    / * Función
    * 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};

    / * En Bit- Mapas, hay dos opciones, o bien
    * Set (OR |) o Desactivar (Y y) bits.
    * /
    no

    {/ * Aquí el número máximo de bits es 16 que van desde 1 .. 16 printf /> * /
    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);

    / * LÓGICA de la siguiente manera * /
    / * Averigüe el índice yy así como índice de cambio * /

    / * Se Dar salida como 0 ó 1 (Bit Posición 1 .. 16) * /
    shift_index = (bit_position-1)% 8;

    printf («El bit_position:% d turno Índice:% d n «, bit_position, shift_index);

    / * Si es cierto conjunto * /
    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);

    } mientras (ch = 100!);
    return 0;}

    Por favor, consulte en el blog para REGISTRO DE DEPURACIÓN DE EJECUCIÓN DE USAR EL MAPA BIT.

  • Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *