/* hexdemo.c by M. Hazen CSE374 datatype demo */ #include #include #include int main(){ int anint; float afloat; char achar; // some initial values: anint = 234; afloat = 234.432; achar = 'A'; // aka, ascii code 65 printf ("int: %d, float: %f, char: %c\n", anint, afloat, achar); printf ("Cast to int.\n"); printf ("int: %d, float: %d, char: %d\n", anint, (int)afloat, (int)achar); printf ("Cast to float.\n"); printf ("int: %f, float: %f, char: %f\n", (float)anint, afloat, (float)achar); printf ("Cast to char.\n"); anint=66; afloat = 67.76; printf ("int: %c, float: %c, char: %c\n", (char)anint, (char)afloat, achar); // hexadecimal stuff: anint = 0xEA; unsigned int auint = 0xEB; unsigned char auchar = 0xEC; printf ("Hex values: \n"); printf ("float: %X, char: %X \n", (int)afloat, (int)achar); printf ("int: %x, uint: %x, uchar: %x\n", anint, auint, auchar); printf ("Hex values as ints: \n"); printf ("int: %d, uint: %d, uchar: %d\n", anint, auint, auchar); // scanf examples printf("Enter value in hexadecimal: "); scanf("%x", &auint); printf("a in hex: %X, and in decimal: %d\n", auint, auint); uintptr_t mymem = (uintptr_t) malloc (16); for (int i = 0; i < 16; i++) { *((unsigned char*)(mymem+i)) = 0xFE; } // ret = (uintptr_t) buffer1 + 21; //treat that number like a pointer, and change the value in it //*((uintptr_t*)ret) += 7; for (int i = 0; i < 16; i++) { printf ("%x ", *((unsigned char*)(mymem+i))); } return 0; }