Túnel do Tempo: a função itoa()
Em uma discussão no fórum de Programação em C e C++ do Viva o Linux, seu proponente perguntava acerca da função itoa(), desejoso de compreender seu funcionamento. Julguei interessante transportá-la, com algumas melhorias, para este espaço, até porque aqui posso fazer algo que não posso fazer naquele fórum, que é dar um exemplo explícito da implementação com código fonte em C.
[ Hits: 16.877 ]
Por: Paulo em 14/06/2017 | Blog: http://unixntools.blogspot.com.br/
Estou estudando C com um amigo virtual, através da Internet. Ele pediu para fazer um programa para converter números de decimal para binário. Fiz o programa, pegando exemplos da Net com a função itoa(), mas a única coisa que eu aprendi sobre itoa() é que ela converte o número.As páginas apresentam a resposta à dúvida do nosso amigo, e discutem, de passagem, alguns problemas com a função itoa() que ele usou no seu programa, apresentando uma versão ligeiramente melhor.
Queria saber mais, como ele funciona, pois não acho legal eu passar o código para ele e não saber como funciona, né?
Eis é o código.
#include <stdio.h> #include <stdlib.h> int main(void){ int num; char binario[10]; printf("Digite o número decimal: "); scanf("%d", &num); itoa(num, binario, 2); printf("O número %d em binário é %s. ", num, binario); return 0; }
Aprendendo a utilizar o GNU Debugger (parte 1)
Criando um sistema operacional com ASM e C++
Criação e uso de um interpretador de script BrainFuck em C++
Como gerar um podcast a partir de um livro em PDF
Automatizando digitação de códigos 2FA no browser
Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Conheça a 4Devs, caixa de ferramentas online para desenvolvedores
Como converter um vídeo MP4 para um GIF para publicar no README.md do seu repositório Github
Como Instalar o Microsoft Teams no Linux Ubuntu
Copia e Cola no SED --> Processador de textos (8)
Ferramentas e métodos de criação de binários estáticos (0)
Alguém pode me explicar essa matemática? [RESOLVIDO] (6)