summaryrefslogtreecommitdiff
path: root/asc.c
diff options
context:
space:
mode:
authorIan C <ianc@noddybox.co.uk>2007-03-04 18:35:36 +0000
committerIan C <ianc@noddybox.co.uk>2007-03-04 18:35:36 +0000
commit954af9179665457b40453a0417ddf5b3949a0449 (patch)
treee3772817de5c79e29b602ebe47fe0129793f1470 /asc.c
parent892e6e107dbf2386831bd00e7f1c2a0bbe8b2cbb (diff)
This commit was generated by cvs2svn to compensate for changes in r2,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'asc.c')
-rw-r--r--asc.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/asc.c b/asc.c
new file mode 100644
index 0000000..46f37b2
--- /dev/null
+++ b/asc.c
@@ -0,0 +1,73 @@
+#include <stdio.h>
+
+main(argc,argv)
+int argc;
+char *argv[];
+
+{
+ int f,l,r;
+ unsigned int c;
+
+ char *binary();
+
+ if(argc==1)
+ {
+ printf("%s: usage %s string1 [..stringn] | -c num1 [.. num n]\n",
+ argv[0],argv[0]);
+ exit(-1);
+ }
+
+ if(strcmp(argv[1],"-c"))
+ {
+ for(r=1;r<argc;r++)
+ {
+ l=strlen(argv[r]);
+
+ for(f=0;f<l;f++)
+ {
+ c=(unsigned int)*(argv[r]+f);
+ printf("%c (%3d - 0x%2.2X %%%s)\n",
+ ((*(argv[r]+f) > 31) ? (*(argv[r]+f)) : '?')
+ ,c,c,binary(c,8));
+ }
+ }
+ }
+ else
+ {
+ if(argc==2)
+ {
+ printf("%s:usage %s -c num1 [.. num n]\n",argv[0],argv[0]);
+ exit(-1);
+ }
+ for(f=2;f<argc;f++)
+ {
+ c=(char)strtol(argv[f],NULL,0);
+
+ printf("%c (%3d - 0x%2.2X %%%s)\n",
+ (c>31) ? (char)c : '?',
+ c,c,binary(c,8));
+ }
+ }
+
+}
+
+
+char *binary(i,w)
+unsigned int i,w;
+
+{
+ static char buff[1024],*p;
+ unsigned int c=w,b=1<<(w-1);
+
+ p=buff;
+
+ for(;c--;b=b>>1)
+ if(i&b)
+ *p++='1';
+ else
+ *p++='0';
+
+ *p='\0';
+
+ return(buff);
+}