I'll add that both gcc and VC do a nice job of compiling this for x86:
almostt identical code, 35 instructions in 88 bytes.

An issue with the ctype.h functions - again only important in tight
environments - is that some implementations use tables that are 1024
bytes.

On Sep 1, 5:55 pm, Gene <gene.ress...@gmail.com> wrote:
> The language does give it tyou in sscanf, but sscanf is a pretty big
> function and in some environments, like small embedded ones, you don't
> get the luxury of using a big block of  code to do a small thing.
>
> unsigned hex_to_unsigned(char *p)
> {
>   unsigned val = 0;
>   while (*p != '\0') {
>     char c = *p++;
>     if ('a' <= c && c <= 'f')
>       val = (val << 4) + (c - 'a' + 10);
>     else if ('A' <= c && c <= 'F')
>       val = (val << 4) + (c - 'A' + 10);
>     else if ('0' <= c && c <= '9')
>       val = (val << 4) + (c - '0');
>     else break;  // quit early on non-hex char
>  }
>  return val;
>
> }
>
> On Sep 1, 12:34 pm, rShetty <rajeevr...@gmail.com> wrote:
>
>
>
> > Given a Hexadecimal value as a string, give a C Code to convert it
> > into decimal value?
> > If 0xff then output should be 255.

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to