00001: #include <stdio.h>
00002: #include <string.h>
00003:
00004: #include "show-bytes.c"
00005:
00006: void test_show_bytes(int val)
00007: {
00008: int ival = val;
00009: show_int(ival);
00010: print_binary(ival);
00011: printf ("\n");
00012:
00013: float fval = (float) ival;
00014: show_float(fval);
00015: printf ("\n");
00016:
00017: int *pval = &ival;
00018: show_pointer(pval);
00019: printf ("\n");
00020: }
00021:
00022: void simple_show()
00023: {
00024: int val = 0x12345678;
00025: byte_pointer valp = (byte_pointer) &val;
00026: show_bytes(valp, 1); /* A. */
00027: printf ("\n");
00028: show_bytes(valp, 2); /* B. */
00029: printf ("\n");
00030: show_bytes(valp, 3); /* C. */
00031: printf ("\n");
00032: }
00033:
00034: void float_eg()
00035: {
00036: int x = 3490593;
00037: float f = (float) x;
00038: show_int(x);
00039: printf ("\n");
00040: show_float(f);
00041: printf ("\n");
00042: }
00043:
00044: void string_eg()
00045: {
00046: char *s = "ABCDEF";
00047: show_bytes((unsigned char *)s, (int) strlen(s)+1);
00048: printf ("\n");
00049: }
00050:
00051: void show_twocomp()
00052: {
00053: short int x = 12345;
00054: short int mx = -x;
00055:
00056: show_bytes((byte_pointer) &x, sizeof(short int));
00057: printf ("\n");
00058: show_bytes((byte_pointer) &mx, sizeof(short int));
00059: printf ("\n");
00060: }
00061:
00062: int main(int argc, char *argv[])
00063: {
00064: int val = 12345;
00065:
00066: if (argc > 1) {
00067: if (argv[1][0] == '0' && argv[1][1] == 'x')
00068: sscanf(argv[1]+2, "%x", &val);
00069: else
00070: sscanf(argv[1], "%d", &val);
00071: printf("Calling test_show_bytes\n");
00072: test_show_bytes(val);
00073: } else {
00074: printf("Calling show_twocomp\n");
00075: show_twocomp();
00076: printf("Calling simple_show\n");
00077: simple_show();
00078: printf("Calling float_eg\n");
00079: float_eg();
00080: printf("Calling string_eg\n");
00081: string_eg();
00082: }
00083: return 0;
00084: }
00085:
|