Search This Blog

Wednesday, November 25, 2009

converts a string of hexadecimal digits into its equivalent integer value


#import
#define key 16

void tran (char s[]) {
int i = 0;
int sum = 0;
while (i if (s[i]>='0'&&s[i]<='9') {
sum += (s[i]-'0')*pow(key,strlen(s)-1-i);
}else if (s[i]>='A'&&s[i]<='F'){
sum += (s[i]-'A'+10)*pow(key, strlen(s)-1-i);
}else if (s[i]>='a'&&s[i]<='f') {
sum += (s[i]-'a'+10)*pow(key, strlen(s)-1-i);
}
i++;
}
printf("%s等于%d\n",s,sum);
}

//去掉回车
/***********************> ReplaceReturnAtEndOfString <*/
void ReplaceReturnAtEndOfString( char *theString ) {
int length = strlen( theString );

theString[ length - 1 ] = '\0';
}

int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
char s[20];
loop: printf("16进制转10进制");
fgets(s, 20, stdin );
ReplaceReturnAtEndOfString(s);
tran(s);
goto loop;
[pool drain];
return 0;
}

No comments:

Post a Comment