Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Sep 13th, 2012  |  syntax: None  |  size: 1.35 KB  |  hits: 9  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <Windows.h>
  4. #include <fstream>
  5.  
  6. typedef unsigned char* pointer;
  7.  
  8. void printDbPointers(void);
  9. void show_int(int);
  10. void show_bytes(unsigned char*, int);
  11. void floatingPointRep();
  12. void fahrenheit();
  13.  
  14.  
  15.  
  16.  
  17. int main()
  18. {
  19.  
  20.  
  21.         int a = 100;
  22.         show_int(a);
  23.         floatingPointRep();
  24.         fahrenheit();
  25.         printDbPointers();
  26.         Sleep(100000);
  27.         return 0;
  28.  
  29. }
  30.  
  31. void printDbPointers(){
  32.         char hi[7] = {'t', 'i',  'g', 'e', 'r', '\0'};
  33.         char *p, **dp;
  34.        
  35.         p = &(hi[0]);
  36.         dp = &p;
  37.  
  38.         printf("%c %c\n", *p, **dp);
  39.         printf("%p %p %p\n", p, *dp, hi);
  40.         p+=1;
  41.         printf("%c, %c\n", *p, **dp);
  42.         printf("%p %p %p\n", p, *dp, hi);
  43.         *dp+=2;
  44.         printf("%c, %c\n", *p, **dp);
  45.         printf("%p %p %p\n", p, *dp, hi);
  46.  
  47. }
  48.  
  49.  
  50. void show_int(int x)
  51. {
  52.         show_bytes((pointer) &x, sizeof(int));
  53. }
  54.  
  55. void show_bytes(pointer start, int len)
  56. {
  57.         int i;
  58.         for(i=0;i<len;i++)
  59.         {
  60.         //      printf("0x%p\t0x%.2x\n", start + i, start[i]);
  61.                 printf("0x%p\t\n", start + i, start[i]);
  62.                 printf("\n");
  63.         }
  64. }
  65.  
  66.  
  67. void floatingPointRep()
  68. {
  69.   float f1 = 1.0;
  70.   float f2 = 0.0;
  71.   int i;
  72.   for ( i=0; i<10; i++ ) {
  73.     f2 += 1.0/10.0;
  74.   }
  75.  
  76.   printf("0x%08x  0x%08x\n", *(int*)&f1, *(int*)&f2);
  77.   printf("f1 = %10.8f\n", f1);
  78.   printf("f2 = %10.8f\n\n", f2);
  79.  
  80.   f1 = 1E30;
  81.   f2 = 1E-30;
  82. }
  83.  
  84. void fahrenheit()
  85. {
  86.  
  87.         int i;
  88.         double arr[3] = {12345678.000, 98765345.333, 456793332.300};
  89.         for (i = 0; i < 3; i++)
  90.         printf ("%g\n", arr[i]);
  91.  
  92. }