
Untitled
By: a guest on
Sep 13th, 2012 | syntax:
None | size: 1.35 KB | hits: 9 | expires: Never
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
#include <fstream>
typedef unsigned char* pointer;
void printDbPointers(void);
void show_int(int);
void show_bytes(unsigned char*, int);
void floatingPointRep();
void fahrenheit();
int main()
{
int a = 100;
show_int(a);
floatingPointRep();
fahrenheit();
printDbPointers();
Sleep(100000);
return 0;
}
void printDbPointers(){
char hi[7] = {'t', 'i', 'g', 'e', 'r', '\0'};
char *p, **dp;
p = &(hi[0]);
dp = &p;
printf("%c %c\n", *p, **dp);
printf("%p %p %p\n", p, *dp, hi);
p+=1;
printf("%c, %c\n", *p, **dp);
printf("%p %p %p\n", p, *dp, hi);
*dp+=2;
printf("%c, %c\n", *p, **dp);
printf("%p %p %p\n", p, *dp, hi);
}
void show_int(int x)
{
show_bytes((pointer) &x, sizeof(int));
}
void show_bytes(pointer start, int len)
{
int i;
for(i=0;i<len;i++)
{
// printf("0x%p\t0x%.2x\n", start + i, start[i]);
printf("0x%p\t\n", start + i, start[i]);
printf("\n");
}
}
void floatingPointRep()
{
float f1 = 1.0;
float f2 = 0.0;
int i;
for ( i=0; i<10; i++ ) {
f2 += 1.0/10.0;
}
printf("0x%08x 0x%08x\n", *(int*)&f1, *(int*)&f2);
printf("f1 = %10.8f\n", f1);
printf("f2 = %10.8f\n\n", f2);
f1 = 1E30;
f2 = 1E-30;
}
void fahrenheit()
{
int i;
double arr[3] = {12345678.000, 98765345.333, 456793332.300};
for (i = 0; i < 3; i++)
printf ("%g\n", arr[i]);
}