Conversão de Decimal para Binário
Publicado por marlon luis petry 31/05/2005
[ Hits: 31.090 ]
Homepage: http://petryx.blogrs.com.br
Este algoritmo converte um número decimal para um número binário através de um pilha dinâmica.
/****************************************************************************** **Author = Marlon Petry **e-mail = marlonpetry@gmail.com **Date = 29/05/2005 **Description: Decimal to binary with queue dynamical ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ******************************************************************************/ #include <stdio.h> typedef struct queue { int value; struct queue *prev,*next; }q; q *topo = NULL,*base = NULL; void push(int value) { q *aux; if(topo == NULL) { base = (q *) malloc(sizeof(q)); base->value = value; base->next = NULL; base->prev = NULL; topo = base; } else { aux = (q *) malloc(sizeof(q)); aux->value = value; aux->prev = topo; aux->next = NULL; topo->next = aux; topo = aux; } } int pop() { int value; if(topo == NULL) return -1; else { value= topo->value; topo = topo->prev; } return value; } void convertDecBin(int dec) { int r; while(dec != 0) { r = dec%2; push(r); dec = dec/2; } } void show() { int flag = 0,b; printf("\nValue Binary is "); while(flag != 1) { b = pop(); if(b == -1) flag = 1; else printf("%d",b); } } main() { int dec; int ch; do { printf("Inform value DECIMAL\n"); scanf("%d",&dec); convertDecBin(dec); show(); puts("\n-1 for finish"); scanf("%d",&ch); }while(ch != -1); }
Método de Newton Modificado p/ Raízes Multiplas
Pilhas Encadeadas Detalhadamente
Busca, inserção e remoção de elementos numa lista
Jogo defutebol simples (com gráficos)
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (0)
Baixar jogos Independentes para Ubuntu [RESOLVIDO] (4)
PIP3 - erro ao instalar módulo do mariadb para o Python (1)
Linux x Plataformas de Trading - um problema (in-)solúvel? (4)