Repository navigation
🧱 cbits v1.0.0
Versão estável da biblioteca cbits, escrita em C puro, voltada para manipulação binária de baixo nível, lógica digital e testes didáticos. Modular, simples e ideal para aprendizado ou integração com sistemas maiores.
✨ Novidades
- ✅ Operações lógicas básicas:
bit_and,bit_or,bit_xor,bit_notbit_nand,bit_nor,bit_xnor
- ✅ Tipo abstrato
Bit(valoresHIGH,LOW) - ✅ Arquitetura modular com separação clara:
operations.cpara operações bit a bitgates.cpara portas lógicas compostas
- ✅ Arquivo objeto único
cbits.ogerado a partir dos múltiplos arquivos fonte para facilitar linkagem - ✅ Exemplo de uso incluso em
examples/main.c
🛠 Estrutura do Projeto
cbits/
├── include/ # Headers públicos (cbits.h)
├── src/ # Implementação (operations.c, gates.c, main.c)
├── examples/ # Exemplos de uso
└── LICENSE # Apache License 2.0
🚀 Como compilar
Compile os arquivos .c em um único arquivo objeto cbits.o com:
gcc -c src/operations.c src/gates.c -o cbits.o
Ou compile separadamente e crie uma biblioteca estática (opcional):
gcc -c src/operations.c -o operations.o
gcc -c src/gates.c -o gates.o
ar rcs libcbits.a operations.o gates.o
Para compilar seu programa usando o arquivo objeto único:
gcc examples/main.c cbits.o -o main
Ou usando a biblioteca estática:
gcc examples/main.c -L. -lcbits -o main
Makefile
Você pode usar o makefile, digitando make all e copiando libbits.a!
🧑💻 Como usar no código
Inclua o header cbits.h:
#include "cbits.h"
int main() {
Bit a = HIGH;
Bit b = LOW;
Bit res = bit_and(a, b);
return 0;
}As funções implementadas em cbits.o (ou na biblioteca estática) serão linkadas no momento da compilação.
⚠️ Limitações conhecidas
- Ainda sem testes unitários automatizados
- Sem verificação de erros para tamanhos incorretos em arrays de bits
- Não há suporte para manipulação dinâmica de bits (alocação, expansão)
📜 Licença
- Este projeto é licenciado sob a Apache License 2.0.
- Você pode usar livremente para fins pessoais, acadêmicos ou comerciais com a devida atribuição.
👤 Autor
- Ely Neto — @netoe1
- Email: elynetobr@gmail.com
📅 Lançamento
- 30 de julho de 2025
Full Changelog: https://github.com/netoe1/cbits/commits/v1.0.0