LINGUAGEM C : VOCÊ SABE USAR CAMPOS DE BITS??

Поділитися
Вставка
  • Опубліковано 4 лют 2025
  • Apoio: www.ryndackcom...
    Linguagem C#, Curso Completo (50% OFF):
    go.hotmart.com...
    Linguagem C, Curso Definitivo:
    go.hotmart.com...
    Linguagem C++, Curso Completo:
    go.hotmart.com...
    Conheça todos os cursos WR Kits
    wrkits.com.br/...
    Loja WR Kits
    wrkits.com.br/
    =======================================
    Se inscreva em nosso canal do Telegram:
    t.me/joinchat/...
    Instagram WR Kits: / wrkits
    Twitter/Instagram: @WagnerRambo e @WRKits
    Contribua com a WR Kits em uma das plataformas:
    / wrkits
    apoia.se/wrkits
    www.padrim.com...
    =======================================
    Descrição do vídeo:
    Nesta aula, entenda e saiba como utilizar os campos de bits (bit fields) na Linguagem C!
    WR Kits parceria com Ryndack componentes.
    =======================================
    =======================================

КОМЕНТАРІ • 52

  • @andrefeliciano3813
    @andrefeliciano3813 6 місяців тому

    Gostei. Bem interessante. Usa somente o necessário

  • @silviosilva2717
    @silviosilva2717 6 місяців тому

    Excelente aula!

  • @ConradoBelmonte
    @ConradoBelmonte 6 місяців тому

    Oba nobre Dr. WR's!!! Conteúdos de Linguagem C sempre são bem-vindos meu caro. Estou aprendendo uma infinidade de coisas em eu Curso Definitivo e por aqui também. Mande mais! Bravooo!

  • @HenriqueVilelaMusic
    @HenriqueVilelaMusic 6 місяців тому +2

    20 anos de linguagem C e realmente nunca vi atribuição desta maneira (com ":") deste conceito! Massa!

    • @canalwrkits
      @canalwrkits  6 місяців тому +1

      Show Henrique! Considere fazer o nosso curso Definitivo de Linguagem C, lá eu apresento todos os segredos, truques e mais um pouco! Bora: go.hotmart.com/N48026554Y

  • @Rodrigo_RDA
    @Rodrigo_RDA 6 місяців тому +2

    Sei, porque fiz o curto WR Kits de Linguagem C. E, sinceramente, este tema foi o que eu mais gostei e mais achei útil de todo o curso: a manipulação dos bits (campo de bits, operações bitwise, etc.). Fiquei muito satisfeito em aprender isso! Só por essas aulas o curso já vale muito a pena (mas tem muito mais coisa bem interessante lá).

    • @canalwrkits
      @canalwrkits  6 місяців тому

      Bacana demais Rodrigo! De fato no curso exploramos bastante a manipulação de bits.

  • @JhonyFerreira-bp5tf
    @JhonyFerreira-bp5tf 6 місяців тому

    Perfeito meu amigo! 👏🏻👏🏻👏🏻

  • @RosivaldoCosta-gx7tq
    @RosivaldoCosta-gx7tq 6 місяців тому

    excelente

  • @roy_hawk
    @roy_hawk 6 місяців тому +2

    Show de bola! Gostei muito da aula! Assim que as coisas melhorarem, pretendo adquirir o curso de C e C++, já os venho namorando a algum tempo. Mas acho que vou priorizar o de C# primeiro, vou tentar pegar antes da promoção encerrar! Gostaria de sugerir algum vídeo com aqueles kits de desenvolvimento da ST que possuem Bluetooth / WiFi, seriam bem interessante de demonstrar! Não vi muito conteúdo didático em vídeos sobre isso nem na gringa, seria top! Valeu professor!

    • @canalwrkits
      @canalwrkits  6 місяців тому

      Aproveite, o curso de C# está incrível! Recomendo os demais também. Excelente, sugestões anotadas, obrigado!

  • @arnesake
    @arnesake 6 місяців тому

    Excelente dica meu amigo! A Linguagem C é realmente poderosa quando bem utilizada! Sempre acompanhando! Forte abraço!

    • @fernandosantos3576
      @fernandosantos3576 6 місяців тому +1

      Verdade! E se for "mal utilizada" (no sentido de ser usada para construir malware), é extremamente poderosa! ;-)

    • @canalwrkits
      @canalwrkits  6 місяців тому +1

      Muito obrigado meu amigo! A Linguagem C tem realmente uma infinidade de recursos e vamos demonstrando sempre que possível. Forte abraço!!

  • @gercinosatiro
    @gercinosatiro 6 місяців тому

    Ótimo explicação! Fomenta boas ideias para quem está trabalhando com embarcados. Só passando um detalhe que aprendi sobre struct; seu tamanho está relacionado a quantidade de elementos que possui e de seus tipos, mesmo que a struct não tenha sido inicializada. Aprendi isso em 'milnovecentosedoze' e espero que ainda seja assim! :) Parabéns Wagner, []s

    • @canalwrkits
      @canalwrkits  6 місяців тому

      Excelente Gercino! Sim segue válido.

  • @SOMA190
    @SOMA190 6 місяців тому

    Uso muito quando estou particionando os registros da SRAM...
    Um vídeo curto legal pra galera poderia mostrar como usar union para preencher automaticamente uma estrutura kkkk essa manipulação de bit e union são simplesmente maravilhosos.

    • @canalwrkits
      @canalwrkits  6 місяців тому

      Show de bola, sugestão anotada!

  • @gilbgomez
    @gilbgomez 6 місяців тому

    SUPER LIKE

  • @orlandof7
    @orlandof7 6 місяців тому +1

    Show!

  • @luizvision478
    @luizvision478 6 місяців тому

    VLW MR WB
    OTIMA DICA
    VOU VER SE TEM ESSA AULA NO CURSO DE C OU C++

    • @canalwrkits
      @canalwrkits  6 місяців тому

      Valeu meu amigo! Lá no curso de Linguagem C tem.

  • @mayconantoniopvai
    @mayconantoniopvai 6 місяців тому +1

    Show. Que tal uma sugestão de vídeo sobre funções e macros variádicas. São outros recursos muito pouco utilizados e conhecidos da linguagem C.

    • @canalwrkits
      @canalwrkits  6 місяців тому

      Sensacional, sugestão anotada!

  • @fernandosantos3576
    @fernandosantos3576 6 місяців тому

    Muito bom, Wagner. Faltou, quiçá, mostrar a memória poupada com esta estratégia mas isso é algo que pode ser facilmente verificado pelos seguidores do canal que já conhecem a linguagem C.
    Ao outros, recomendo que façam o curso de linguagem C da WR Kits.

    • @canalwrkits
      @canalwrkits  6 місяців тому

      Isso mesmo Fernando, muito obrigado!!

  • @durka8892
    @durka8892 6 місяців тому +1

    Obrigado pelo vídeo. Acho que faltou falar um pouco sobre alinhamento e empacotamento, já que estão bastante vinculados a esse tópico.
    Aqui vai uma rapida explicação para as pessoas:
    Como ele disse, depende muito da arquitetura. Em arquiteturas de 32 bits (x86 ou ARM), o tamanho dessa estrutura será de 4 bytes devido ao alinhamento realizado pelo compilador. Você pode utilizar diretivas para o compilador evitar esse alinhamento (como __attribute__((packed))), forçando assim que o tamanho da estrutura não utilize o alinhamento e ficando com apenas 1 byte. Mas vale ressaltar que isso pode impactar o desempenho, pois o acesso à memória não estará alinhado. Não sei exatamente quanto desempenho é perdido ao usar estruturas desalinhadas, pois nunca fui atrás disso, mas saiba que toda estrutura que você declara possui, por padrão, um alinhamento de bits.
    Você pode observar/brincar com isso declarando estruturas com tipos diferentes (uint8_t, uint16_t, vetores, etc.) e printando o tamanho da estrutura, por exemplo, usando sizeof(). Você vai perceber que, dependendo do arranjo da sua estrutura, ela terá mais bytes que os declarados. Isso ocorre devido ao alinhamento de bits que o compilador realiza (como dito antes).
    Obrigado pelo vídeo.
    Abraço

    • @canalwrkits
      @canalwrkits  6 місяців тому

      show. Abraço

    • @cleissontavaresbrito1491
      @cleissontavaresbrito1491 6 місяців тому

      bytes desalinhados = processamento mais rápido das informações, uma vez que as variáveis declaradas nesse formato terão o mesmo tamanho do barramento de dados do processador, e não haverá a necessidade do compilador criar alguma estratégia para ignorar os bits restantes. o maior problema de bytes desalinhados é o consumo extra de memória, já que o compilador irá dar preferência ao desempenho ao invés da memória.
      bytes alinhados = economia de memória, pois você aproveitará todo o espaço de memória para acomodar os dados declarados, porém o processador terá o seu desempenho diminuído, pois o compilador irá produzir mais instruções para alterar os dados de uma região específica da memória sem comprometer a região dos demais bits dos dados declarados.
      resumindo, bytes desalinhados = performance e maior consumo de memória, bytes alinhados = menor performance e maior economia de memória

  • @Entendendoascoisa
    @Entendendoascoisa 6 місяців тому

    WR faz vídeo recebendo dados de um barramento 485 e de um barramento CAN num programa em C#. Pegando os IDs de quem enviou e os dados. Estou fazendo o curso de C# excelente vários projetos na cabeça.

    • @canalwrkits
      @canalwrkits  6 місяців тому +1

      Show meu amigo, sugestão anotada!

  • @mailsonmacedo0
    @mailsonmacedo0 6 місяців тому

    Ótima aula como sempre! E Wagner, tem previsão de quando a PARADOXUS 8051 vai estar disponível lá na loja?

    • @canalwrkits
      @canalwrkits  6 місяців тому

      Muito obrigado! Não tem previsão, mas teremos kit de 8051 sim, fique sempre ligado.

  • @carlosrodrigos
    @carlosrodrigos 6 місяців тому

    Professor, boa noite. Poderia fazer um vídeo sobre adicionar algum exemplo do github em um projeto esp-idf existente? Algo como adicionar uma captura do Ads1115 em algum projwto que tenha outras funcionalidades, ou qualquer outra funcionalidade adicional nesse projeto. Abraço

    • @canalwrkits
      @canalwrkits  6 місяців тому

      Show Carlos, sugestão anotada. Abraço

  • @williamsam2159
    @williamsam2159 6 місяців тому

    Boa noite, muito bom o vídeo, é possível usar com variáveis de números reais para limitar o uso de memória ?
    Gostei muito de fazer o curso de linguagem C, estou revendo o curso para poder começar o de C++ e o de C sharp.

    • @canalwrkits
      @canalwrkits  6 місяців тому +1

      Obrigado William! Campos de bits usamos apenas com unsigned int.
      Bons estudos!

    • @williamsam2159
      @williamsam2159 6 місяців тому

      @@canalwrkits obrigado, e existe um limite de declaração de bits? Ou o limite vai do tamanho da memória?

    • @canalwrkits
      @canalwrkits  6 місяців тому +1

      O limite é a memória da arquitetura mesmo.

  • @anonimo6740
    @anonimo6740 6 місяців тому

    bom video! bom dia Wagner, no caso do ano esta ocupando 12 bits, no espaço de memoria é reservado 8 bits em um endereço e + 4 bits em outro? os 4 bits restantes já esta comprometido com a variavel hora ou poderão ser usados para reservar outros bits?

    • @canalwrkits
      @canalwrkits  6 місяців тому

      Análise correta. E sim, o compilador organiza para aproveitarmos ao máximo os bits disponíveis, então os 4 restantes poderão servir para outro dado.

    • @anonimo6740
      @anonimo6740 6 місяців тому

      mesmo nos compiladores dedicados aos microcontroladores? obrigado

  • @juniorlucival
    @juniorlucival 6 місяців тому

    Particularmente para sistemas embarcados essa abordagem não é recomendado. Usem máscara de bits sera mais portável, menos verboso e mais performático.

  • @gustavopereiradasilva2024
    @gustavopereiradasilva2024 6 місяців тому

    Qual abstração é mais elegante ? PORTCbits.PC1 = X ou PORTCbits(1, X)

    • @gustavopereiradasilva2024
      @gustavopereiradasilva2024 6 місяців тому

      @@Prescott2400-my6di decorar cada registrador e fazer bitwise manualmente de cada um n tenho tempo nem paciencia pra isso. Eu escrevi a função PORTCbits(PINO, FUNÇÃO 0 1 OU 2) 0 desliga 1 liga 2 toggle justamente pra nao ter que escrever manual. Mas acho a do mplab que usa esse método de struct mais elegante com menos cara de arduino

    • @gustavopereiradasilva2024
      @gustavopereiradasilva2024 6 місяців тому

      @@Prescott2400-my6di void PORTCbits(unsigned char pin, unsigned short int pfun){
      switch(pfun){
      case 1: {GPIOC->OUTDR |= (1

  • @PirainoF
    @PirainoF 6 місяців тому

    eu ainda tennho duvida sobre os bit do registradores, por ex uma saida RA0 vc tem 8 bits para confirgurar , mais se configurar como entrada RA0 posso ter até 7 entradas diferentes de leitura ?

    • @canalwrkits
      @canalwrkits  6 місяців тому +1

      RA0 seria um único bit de um PORTA por exemplo. Se configurar como saída, será uma saída. Se configurar como entrada, será uma entrada. Não entendi exatamente sua dúvida.

  • @noslidemais
    @noslidemais 6 місяців тому