From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/bstr_i.c | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/bstr_i.c (limited to 'reference/C/CONTRIB/SNIP/bstr_i.c') diff --git a/reference/C/CONTRIB/SNIP/bstr_i.c b/reference/C/CONTRIB/SNIP/bstr_i.c new file mode 100755 index 0000000..94255e1 --- /dev/null +++ b/reference/C/CONTRIB/SNIP/bstr_i.c @@ -0,0 +1,40 @@ +/* +** Make an ascii binary string into an integer. +** +** Public domain by Bob Stout +*/ + +#include + +unsigned int bstr_i(char *cptr) +{ + unsigned int i, j = 0; + + while (cptr && *cptr && strchr("01", *cptr)) + { + i = *cptr++ - '0'; + j <<= 1; + j |= (i & 0x01); + } + return(j); +} + +#ifdef TEST + +#include +#include + +int main(int argc, char *argv[]) +{ + char *arg; + unsigned int x; + + while (--argc) + { + x = bstr_i(arg = *++argv); + printf("Binary %s = %d = %04Xh\n", arg, x, x); + } + return EXIT_SUCCESS; +} + +#endif /* TEST */ -- cgit v1.2.3-54-g00ecf