Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) campos de bits


Termite

Pergunta

2 respostass a esta questão

Posts Recomendados

  • 0

Sim!

Independentemente da arquitetura, os sistemas atuais, tem um inteiro CHAR de 8 bits.

Se mapearmos um a um em estrutura, e aplicamos cast é possível manipula-los individualmente.

Veja como:

/** @authr Mauro Britivaldo
* License all free on edition and published */
#include <stdio.h>
                                          //MANUAL TRACE
typedef struct byte byte;                 //Definido a nossa estrutura
struct byte {                             //Mapeamos Bit a Bit com campos da mesma
   unsigned char b0: 1;
   unsigned char b1: 1;
   unsigned char b2: 1;
   unsigned char b3: 1;
   unsigned char b4: 1;
   unsigned char b5: 1;
   unsigned char b6: 1;
   unsigned char b7: 1;
   };

int main (void)   {
//
   char c_caracter;                       //Declaramos uma variável inteira
   byte *bt;                              //Declaramos um ponteiro da estrutura


      bt = (byte*) &c_caracter;
      bt->b4 = 1;                         //Manipulamos em baixo nível; bit a bit := |16|
                                          //Observe o resultado
      
     //
      printf ("Before: Show byte: %d\n", c_caracter);

      bt->b4 = 0;
      printf ("After:  Show byte: %d\n", c_caracter);

   return 0;
   } 
Editado por britivaldo
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...