Conteúdo: Default Ardósia Uva Barbie Morango Pôr do sol Banana Folha Chocolate Madeira
Fundo: Default Ardósia Uva Barbie Morango Pôr do sol Banana Folha Chocolate Madeira
Desenho: Liso Onda Linha Retalho Madeira Rocha Couro Colméia Vertical Triângulo
Bem-vindo ao Fórum do BABOO!

Desde 2000 o Fórum do BABOO tem ajudado milhões de internautas de Windows a resolverem seus problemas e dúvidas, além de ajudar na remoção de vírus e malwares de seus computadores. Somos o único fórum brasileiro coordenado por um especialista com reconhecimento internacional pela sua competência em Windows, então se você tem uma dúvida ou problema que nenhum outro fórum resolve, poste-a aqui pois o MVP Babooadora desafios!
  

O Fórum do BABOO também conta com a participação exclusiva do administrador da área de Segurança MVP Mr.Million que tem reconhecimento internacional da Microsoft pelo seu incansável trabalho ajudando os internautas a remover vírus e malwares dos seus computadores. Se o seu computador está infectado por algum vírus, ele te ajudará a removê-lo!
  

Nosso time de especialistas também inclui Patropi  Osvaldomp  Caze  Ciro-Mota  XERLOUCO ROUMS  Tatha que responderão suas dúvidas sobre diversos assuntos.
 

Participe da nossa comunidade! 

 

Entre para seguir isso  
Seguidores 0
Mc Fly

Conversor de bases numéricas em C

4 posts neste tópico

Bom, sou iniciante em programação, mas já fiz um algoritimo para converter números decimais em binários e binários em decimais, além de um conversor de números hexadecimais para binário e de binário para hexadecimal. Na época em que eu fiz eles (a cerca de um mês atrás) não conhecia o "%" por isso inventei uma gambiarra para fazer a conversão decimal > binário. Ai vai os códigos:

55.gif Conversor Binário > Decimal, Decimal > Binário

 

 

#include <iostream.h>

#include <conio.h>

#include <math.h>

int n,v,x=1,y=1,d,z,w=1,r,cont,cont2,cont3,c=2;

void binario(){

  clrscr();

  cout<<"Numer";

  cin>>n;

  if(n!=0){

  if(n!=1){

  v=n;

while(v>x){

x=pow(2,y)-1;

y=y+1;

}

y=y-1;

d=y-1;

z=n;

w=1;

for(cont=y;cont>0;cont--){

if(w==1){

for(cont2=d;cont2>0;cont2--)

  z=z/2;

gotoxy(1,5);

cout<<z;

d=d-1;

w=w-1;

}

else{

r=n;

for(cont3=d;cont3>0;cont3--)

  r=r/2;

if(r==1){

gotoxy(c,5);

cout<<r;

}

else{

  if(r==0){

gotoxy(c,5);

cout<<r;

  }

  else{

  while((r!=1)&&(r!=0))

  r=r-2;

  gotoxy(c,5);

  cout<<r;

  d=d-1;

  c=c+1;

  }

  }

}

}

  }

  else{

  gotoxy(1,5);

  cout<<"1";

 }

 }

 else{

  gotoxy(1,5);

  cout<<"0";

 }

}

void decimal(){

  clrscr();

  cout<<"Numero de Bits:";

  cin>>n;

  z=n-1;

  r=0;

  for(cont=n;cont>0;cont--){

  cout<<"Digito Binari";

  cin>>v;

  r=r+(pow(2,z)*v);

  z=z-1;

  }

  cout<<"n"<<r;

}

void main(){

  int o;

  char a;

  do{

  clrscr();

  cout<<"1 - Conversao Decimal Binario";

  cout<<"n2- Conversao Binario Decimal";

  cout<<"nEscolha uma opca";

  cin>>o;

  switch Conversor Hexadecimal > Binário, Binário > Hexadecimal

 

 

#include <iostream.h>

#include <conio.h>

#include <ctype.h>

int o,n,d,cont,x=1;

char l,o2;

void binario(){

  gotoxy(1,7);

  cout<<"Numero de Digitos: ";

  cin>>n;

  for(cont=n;cont>0;cont--){

  gotoxy(1,8);

  cout<<"   ";

  gotoxy(1,8);

  cout<<"[N] Numero [Outra Tecla] Letra ";

  cin>>o2;

  if((o2==''n'')||(o2==''N'')){

  gotoxy(1,9);

  cout<<"   ";

  gotoxy(1,9);

  cout<<"Digit ";

  cin>>d;

  switch38.gif{

 case 0: gotoxy(x,11);

cout<<"0000";

break;

 case 1: gotoxy(x,11);

cout<<"0001";

break;

 case 2: gotoxy(x,11);

cout<<"0010";

break;

 case 3: gotoxy(x,11);

cout<<"0011";

break;

 case 4: gotoxy(x,11);

cout<<"0100";

break;

 case 5: gotoxy(x,11);

cout<<"0101";

break;

 case 6: gotoxy(x,11);

cout<<"0110";

break;

 case 7: gotoxy(x,11);

cout<<"0111";

break;

 case 8: gotoxy(x,11);

cout<<"1000";

break;

 case 9: gotoxy(x,11);

cout<<"1001";

break;

 default: gotoxy(1,13);

cout<<"Opcao Invalida";

break;

  }

  x=x+5;

  }//fim do if

  else{

  gotoxy(1,9);

  cout<<"   ";

  gotoxy(1,9);

  cout<<"Digit ";

  cin>>l;

  l=toupper24.gif;

  switch24.gif{

 case ''A'': gotoxy(x,11);

  cout<<"1010";

  break;

 case ''B'': gotoxy(x,11);

  cout<<"1011";

  break;

 case ''C'': gotoxy(x,11);

  cout<<"1100";

  break;

 case ''D'': gotoxy(x,11);

  cout<<"1101";

  break;

 case ''E'': gotoxy(x,11);

  cout<<"1110";

  break;

 case ''F'': gotoxy(x,11);

  cout<<"1111";

  break;

 default: gotoxy(1,13);

cout<<"Opcao Invalida";

break;

  }

  x=x+5;

  }//fim else

  }//fim for

}

void hexadecimal(){

  gotoxy(1,7);

  cout<<"Numero de Grupos de 4 bits (0000): ";

  cin>>n;

  for(cont=n;cont>0;cont--){

  gotoxy(1,8);

  cout<<" ";

  gotoxy(1,8);

  cout<<"Grupo de 4 bits: ";

  cin>>d;

  switch38.gif{

 case 0000: gotoxy(x,11);

  cout<<"0";

  break;

 case 0001: gotoxy(x,11);

  cout<<"1";

  break;

 case 0010: gotoxy(x,11);

  cout<<"2";

  break;

 case 0011: gotoxy(x,11);

  cout<<"3";

  break;

 case 0100: gotoxy(x,11);

  cout<<"4";

  break;

 case 0101: gotoxy(x,11);

  cout<<"5";

  break;

 case 0110: gotoxy(x,11);

  cout<<"6";

  break;

 case 0111: gotoxy(x,11);

  cout<<"7";

  break;

 case 1000: gotoxy(x,11);

cout<<"8";

break;

 case 1001: gotoxy(x,11);

cout<<"9";

break;

 case 1010: gotoxy(x,11);

cout<<"A";

break;

 case 1011: gotoxy(x,11);

cout<<"B";

break;

 case 1100: gotoxy(x,11);

cout<<"C";

break;

 case 1101: gotoxy(x,11);

cout<<"D";

break;

 case 1110: gotoxy(x,11);

cout<<"E";

break;

 case 1111: gotoxy(x,11);

cout<<"F";

break;

 default: gotoxy(1,13);

cout<<"Opcao Invalida";

break;

  }

  x=x+1;

  }

}

void main(){

  int o3;

  char e;

  do{

  clrscr();

  x=1;

  cout<<"1 - Conversao Hexadecimal Binario";

  cout<<"n2- Conversao Binario Hexadecimal";

  cout<<"nEscolha uma Opca";

  cin>>o3;

  switch(o3){

 case 1: binario();

break;

 case 2: hexadecimal();

break;

 default: cout<<"nOpcao Invalida";

break;

  }

  cout<<"nnDeseja Converter Outro Numero?";

  cout<<" Sim [Outra Tecla] Nao ";

  cin>>e;

  }while((e==''s'')||(e==''S''));

}

 

 

 

Desculpe se o código ficou meio bagunçado (por causa da página da Internet pois o código original está ok) tentei arrumar o máximo que pude.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  Kra meu colega me mandou esse programa ano passado, vê se ajuda !

 

/*-----------------------------------------------------------------------------+

| Programador: Jorge Augusto |

| E-Mail: jorgeaugustofox@bol.com.br |

| Nota: Compilado no Visual C++ 6.0 Introductory Edition |

+-----------------------------------------------------------------------------*/

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <math.h>

// Prototipo de funções:

char *ConverteBase(int, int, int);

 

// Função principal

int main(int argc, char *argv[])

{

  int iNumM  = 0;

  int iBaseO = 0;

 int iBaseD = 0;

 

  printf("Digite o Numero para convertern");

  scanf("%d", &iNumM);

 printf("Digite a Base de Origemn");

  scanf("%d", &iBaseO);

 printf("Digite a Base de Destinon");

  scanf("%d", &iBaseD);

  printf("%d na Base %d  corresponde a %s na Base %dn", iNumM, iBaseO, ConverteBase(iNumM, iBaseO, iBaseD), iBaseD);

  system("PAUSE");

 

  return 0;

}

/*

 Essa função é genérica mais pode ser dividor para executar a tarefa de forma mais específica

 fiz ela desse jeito por que assim se tem tudo de uma única vez... divida se achar necessário

*/

char *ConverteBase(int iNum, int iBaseOrig, int iBaseDest)

{

  char   szBuffer[40]; // buffer maior que 32 para 4 bi em binário

  static char szResult[40]; // idem

  char r   = 0; // resto

  char i   = 0; // iterador

  char c   = 0; // contador

  char cLen = 0; // comprimento da string

 int  iTemp  = 0; // temporário claro!

 int  iIndex = 0; // indece da matriz

  szBuffer[0] = 0;

  szResult[0] = 0;

 

  sprintf(szBuffer, "%d", iNum);

 cLen = strlen(szBuffer);

 

 iIndex = cLen - 1;

 // converte para a base 10

  for(i = 0; i < cLen; i++){

iTemp += (szBuffer[iIndex] - 48) * (pow(iBaseOrig, i));

iIndex--;

 }

 

 iNum = iTemp;

 i ^= i;

 // converte de 10 para a base de destino

  do{

  r = (iNum % iBaseDest);

  iNum = iNum / iBaseDest;

  szBuffer = r + 48;

  i++;

  }while(iNum != 0);

 

 i--;

 

 // inverte a string do resultado... necessário

 for(; i > -1; i--, c++){

  szResult[c] = szBuffer;

  }

 

  return szResult;

}  

 


Só sei que nada sei!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom galerinha, vi aqui varias pessoas mandando seus programas e aceitei o desafio. Fiz um para conversão de decimal para binario e de binario para decimal.

OBS: só aceita conversao de decimal para binário no valor de 65535 e de binário para decimal no valor de 1111111111111111 (16 numeros "1"), isso devido a limitação da variável unsigned int.

 

La vai o programa (ficou um pouco grande): Ah.. foi feito em Turbo C++ 3.0

 

#include <conio.h>

#include <stdio.h>

#include <ctype.h>

#include <string.h>

#include <math.h>

void binario(unsigned int num)

{

 unsigned int bin[50];

 int 'n' = 0; // está entre aspas porque o corretor troca o "ene" por não

 do

 {

  bin[n++] = num % 2;

  num = num / 2;

 } while (num != 1);

 bin[n] = num;

 printf("nnNumero em binari ");

 for (int i = n; i >= 0; i--)

 {

  printf("%i",bin);

 }

}

void decimal(char *num)

{

 unsigned int t = strlen(num),

dec[20], total = 0,

cont = 1, pot = 2,

teste = 1;

 for (int i = 0; i < t; i++)

 {

  if (num == '1') dec = 1;

  else if (num == '0') dec = 0;

else { teste = 0; break; }

 }

 if (teste)

 {

if (dec[--t]) total = 1;

for (int i = t-1; i >= 0; i--)

{

  pot = pow(2,cont++);

  if (dec) total = total + pot;

}

printf("nnNumero em decimal: %d",total);

 }

 else

 {

  printf("nnVALOR INVALIDO!!!");

 }

}

void main()

{

 unsigned int numd;

 char resp,numb[20];

 do

 {

  clrscr();

  printf("Conversao para decimal ou para binario? (D - decimal, B - binario)n");

  resp = getche();

  switch (toupper(resp))

  {

case 'D': printf("nnDigite o número Binari ");

  gets(numb); fflush(stdin);

  decimal(numb);

  break;

case 'B': printf("nnDigite o número Decimal: ");

  scanf("%d",&numd);

  binario(numd);

  break;

default:  printf("nnOpcao invalida!");

  break;

  }

  printf("nnnDeseja digitar outro número (S para digitar, qualquer outro para sair)? ");

  resp = getche(); fflush(stdin);

 } while (toupper(resp) == 'S');

}

 

é isso aí.. se alguém achar um jeito de melhorar esse programa, por favor, me deixe saber, sempre gosto de aprender mais e melhorar o desempenho dos meus programas, mesmo que os mais simples.

 

EDITADO! mudei as variaveis int para unsigned int, com isso o valor máximo foi para 65535 contra 32767 de antes.

______________________________________________________________________

AMD Athlon 64 3200+ S939 BOX Venice / placa-mãe Asus A8N-E S939 PCI-E

2x512 RAM DDR PC3200 Kingston Dual / HD Serial ATA 160GB Samsung 7200 RPM

7600GT 256mb/128bits / Teclado e mouse Wireless Leadership

Monitor 17" LG Flatron Tela Plana / Gravador de DVD LG

Gabinete X-Blade Prata com Display LCD / Seventeam 420BKV.

Skype: bspavanelli

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Quer postar a sua dúvida? Cadastre-se pois é rápido e fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora
Esse tópico é útil para você?
Então compartilhe e ajude outros internautas!
Entre para seguir isso  
Seguidores 0

  • Vídeos do BABOO no YouTube

  • Posts

    • Prossiga sem informar isso, clicando em Next ou Avançar.
    • Olá amigos tudo bem? Gostaria de saber de vocês qual navegador recomendável para usar nos dias de hoje? Se tiver algum tópico que já aborda esse assunto, por favor me informem. Desde já obrigado.
    • Ao iniciar, quando aparecer o logo itautec pressione F8 repetidamente e veja se aparece algo...Se não funcionar assim tente novamente com F10.. Se ok aparecerá opção de recuperação do note... Se não conseguir assim tente dar boot com um cd do linux e veja se o HD aparece mesmo que não possa acessa-lo. Se não aparecer o possivel problema é com o HD.
    • olha essa pagina http://wu.krelay.de/en/Vista.htm instale todos esses updates na ordem de cima pra baixo depois ae sim rode winupdate pra ele acha o restante   funcionou? Final update list for Windows Vista KB Vista x64 Vista x86 KB3124275 Cumulative update for IE7/8/9, Jan 2016 Download Download KB3183431 Kernel-mode drivers, Oct 2016 Download Download KB3193418 Security update, Nov 2016 Download Download KB3194371 Kernel-mode drivers, Nov 2016 Download Download KB3205638 Security update Graphics components, Dec 2016 Download Download KB4012583 Security update Graphics components, Mar 2017 Download Download KB4015195 Security update Win32k, Apr 2017 Download Download KB4015380 Security update ATMFD.dll, Apr 2017 Download Download KB4014661 Cumulative update for IE9, Apr 2017 Download Download
    • Primeira postagem. Preciso ajuda 2 itens/assuntos: 1) Não consigo atualizar meu W7 ultimate pro - original (note Dell Vostro 1320), pro W10; tentei mais de 15 vezes, e depois de baixar o W10, durante as atualizações, vai até 40 ou 45% e informa erro. desta última em inglês: "Windows could not configure one ou more system components. To install Windows, restart the computer and them restart the installation". O que fazer? 2) Tenho alguns (8 ou 9) arquivos PDF cuos nomes estão gravados com mais de 256 caracteres e não consigo deletar; descobri ao fazer o seguinte procedimento: tecla <Windows> + "R", e ... a) prefetch => selecionar e deletar;  b) recent => selecionar todas e deletar; e c) %temp% => selecionar todas e deletar, mas aí ficam os tais arquivos PDFs. O que fazer em ambos os casos? Agradeço.  
    • Boa tarde! Vou tentar fazer. obrigado pela ajuda.
    • 1. Faça download do OTL (OldTimer) e salve-o na sua Área de Trabalho (desktop) 2. Feche todas as janelas e execute-o Usuários do Windows Vista, 7, 8 ou 8.1: clique com o botão direito do mouse no ícone do OTL.exe e selecione   3. Habilite estas opções do OTL:  1  Padrão
       2  90 dias
       3  Usar WhiteList para Nomes de Companhias
       4  Ignorar Arquivos Microsoft
       5  Verificar Lop
       6  Verificar Purity 4. Agora selecione as linhas abaixo em vermelho e copie-as (CTRL C) CREATERESTOREPOINT
      netsvcs
      %systemroot%\system32\drivers\*.* /90
      %systemdrive%\drivers\*.exe
      %SYSTEMDRIVE%\*.*
      %LOCALAPPDATA%\*.exe
      %LOCALAPPDATA%\*.txt
      %LOCALAPPDATA%\*.ini
      %LOCALAPPDATA%\*.dll
      %LOCALAPPDATA%\*.dat
      %USERPROFILE%\*.exe
      %USERPROFILE%\*.txt
      %USERPROFILE%\*.ini
      %USERPROFILE%\*.dll
      %USERPROFILE%\*.dat /30
      C:\windows\system32\Tasks\*.* /s
      C:\windows\system32\Tasks\*.* /s /64
      %windir%\tasks\*.* /s
      %systemroot%\*.scr
      HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections
      HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Associations
      HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments
      HKU\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Run /s
      HKLM\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl
      \FEATURE_ENABLE_SCRIPT_PASTE_URLACTION_IF_PROMP
      HKCU\Software\Microsoft\Internet Explorer\Downloads
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Licensing Core
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
      HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts
      \UserList
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\Winlogon
      \SpecialAccounts\UserList
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Policies\Google\Chrome
      HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TermService
      net user /c
      /md5start
      termsrv.dll
      termsrv.dll.bak
      /md5stop
      %systemdrive%\$Recycle.Bin|@;true;true;true /fp 5. Volte ao programa, clique com o botão direito do mouse dentro da área Exames Personalizados/Correções e escolha Colar 6. Agora clique em Verificar para o OTL iniciar a varredura do seu computador: Não modifique nenhuma outra configuração a menos que você tenha sido orientado a fazer isso. A análise do OTL demora um pouco, então tenha paciência. Quando a análise finalizar, serão criados dois arquivos: OTL.txt e Extras.txt. Eles estarão na mesma pasta aonde o arquivo OTL.exe foi salvo: na sua Área de Trabalho (Desktop). 7. Por fim, copie todo o conteúdo do arquivo OTL.txt (selecione todo o texto e tecle CTRL C) e poste na sua próxima resposta (tecle CTRL V).
    • é um notebook da Itautec - Infoway Note W7645.
    • boa tarde  minhas pastas  personalizada  no  Windows  7  com  fotos  de film  e jogos ,  não  aparecem  personalizada  no celular   androide  quando transfiro-as  para  la , só  aparecem  como pastas  normais   ,  exemplo  fiz  uma pasta  com  minha  foto  como  ícone,  mais  quando  visualizo ela  no  celular   ela  so  aparece  como  pasta  normal  minha foto não  aparece,   já tentei  instalando  launcher   , e mesmo assim  não  deu  certo ,  em  qualquer  outro  computador  elas  aparecem  com  minha foto ,  só  no  celular  que  não   alguém  pode  me ajudar ? ded pool.ico
    • Boa tarde. Se nem o instalador autônomo funcionou, terá então uma mão de obra para fazer. Utilize o WSUS Offline Update e o VLite para integrar as atualizações na imagem de instalação que você tem. Neste link tem uma opção que foi basicamente o que indiquei.
O site BABOO está no ar para informar e ajudar o internauta de Windows. Este site foi publicado em 1999 por Aurélio "Baboo", engenheiro e um dos maiores especialistas brasileiros em Windows, que trabalha profissionalmente com esse sistema operacional desde 1987. Desde 2004 ele é premiado anualmente pela Microsoft como MVP (Most Valuable Professional) pela sua contribuição e ajuda à comunidade de usuários de Windows.

Em 2001 foi criado o
Fórum do BABOO para ajudar o internauta brasileiro a solucionar problemas e dúvidas sobre Windows, Segurança, Office, Hardware e outros temas. Desde 2010 a Microsoft também tem premiado o Mr.Million, administrador da área de Segurança do Fórum do BABOO, pelo seu incansável trabalho ajudando os internautas a remover vírus e malwares dos seus computadores. Atualmente ele é o único MVP brasileiro de Segurança em desktop.

O BABOO é o único site brasileiro coordenado por um especialista com reconhecimento internacional pela sua competência em Windows e que participa diariamente e ativamente nos comentários e discussões do site e fórum BABOO.