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 :)
Annonceindlæg fra IBM
08. marts 2005 - 14:24
#1
Du har en streng med f.eks. "00000111" og vil gerne have konvetreret den til en streng "7" ?
08. marts 2005 - 14:25
#2
Ja :D Det ville være fint.
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; }
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
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));
08. marts 2005 - 14:32
#6
Jo tak :) Smider du et svar? Herligt at du altid har en løsning klar :D
08. marts 2005 - 14:34
#7
svar
08. marts 2005 - 14:45
#8
hvilken .h fil skal man bruge til decstr og binstr?
08. marts 2005 - 14:49
#9
Ingen - det er bare to variabel navne. sprintf er i stdio.h strtol er i string.h
08. marts 2005 - 14:52
#10
ah det er der problemet ligger.. manglede string.h :) mange tak
Kurser inden for grundlæggende programmering