Avatar billede bundgaard Nybegynder
08. marts 2005 - 14:21 Der er 9 kommentarer og
1 løsning

Konverter fra binær til decimal

Hej

Jeg har en binær værdi (på 8 cifre), som skal konverteres til decimal. Findes der en funktion til det? Eller skal man selv lave en?

Det skal helst ikke fylde for meget, da det skal bruges i en embedded unit :)
Avatar billede arne_v Ekspert
08. marts 2005 - 14:24 #1
Du har en streng med f.eks. "00000111" og vil gerne have konvetreret den
til en streng "7" ?
Avatar billede bundgaard Nybegynder
08. marts 2005 - 14:25 #2
Ja :D Det ville være fint.
Avatar billede arne_v Ekspert
08. marts 2005 - 14:26 #3
Eksempel:

#include <stdio.h>

int indec()
{
  int res;
  printf("Enter decimal: ");
  scanf("%d",&res);
  return res;
}

int inhex()
{
  int res;
  printf("Enter hexadecimal: ");
  scanf("%X",&res);
  return res;
}

int inbin()
{
  int res,ix;
  char line[34];
  printf("Enter binary: ");
  scanf("%s",line),
  ix=0;
  res = 0;
  while(line[ix]!='\0')
  {
    res = res * 2 + (line[ix]=='1' ? 1 : 0);
    ix++;
  }
  return res;
}

void outdec(int v)
{
  printf("decimal = %d\n",v);
}

void outhex(int v)
{
  printf("hexadecimal = %X\n",v);
}

void outbin(int v)
{
  int i;
  printf("binary = ");
  for(i=0;i<sizeof(int)*8;i++)
  {
      printf("%d",(v >> (sizeof(int)*8 - i - 1)) & 1);
  }
  printf("\n");
}

int main()
{
  int v;
  v = indec();
  outdec(v);
  outhex(v);
  outbin(v);
  v = inhex();
  outdec(v);
  outhex(v);
  outbin(v);
  v = inbin();
  outdec(v);
  outhex(v);
  outbin(v);
  return 0;
}
Avatar billede arne_v Ekspert
08. marts 2005 - 14:27 #4
inbin + outdec må gøre det som du ønsker

du skal sikker ikke indlæs eog udskrive på den måde men det må nemt kunne
ændres til dit behov
Avatar billede arne_v Ekspert
08. marts 2005 - 14:29 #5
En anden metode (og i en lidt anden indpakning):

char binstr[] = "00000111";
char decstr[10];
char *ep;
sprintf(decstr,"%d",strtol(binstr, &ep, 2));
Avatar billede bundgaard Nybegynder
08. marts 2005 - 14:32 #6
Jo tak :)

Smider du et svar? Herligt at du altid har en løsning klar :D
Avatar billede arne_v Ekspert
08. marts 2005 - 14:34 #7
svar
Avatar billede bundgaard Nybegynder
08. marts 2005 - 14:45 #8
hvilken .h fil skal man bruge til decstr og binstr?
Avatar billede arne_v Ekspert
08. marts 2005 - 14:49 #9
Ingen - det er bare to variabel navne.

sprintf er i stdio.h

strtol er i string.h
Avatar billede bundgaard Nybegynder
08. marts 2005 - 14:52 #10
ah det er der problemet ligger.. manglede string.h :) mange tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester