cs240/hw/hw6/HW6-src-update/task2/endian.c
2018-10-15 17:20:57 -04:00

40 lines
673 B
C
Executable File

#include <stdio.h>
#include <stdlib.h>
int isBigEndian(char* p) {
//TODO: Implement your function here
int value = (int) strtol(p, NULL, 0);
unsigned char* byte = (unsigned char*) &value;
if (*byte == 0x40) {
return 1;
}
return 0;
//printf("0x%x, 0x%x\n", value, *byte);
}
/**
* Hint:
* 0x40490FDB is PI in little endian format
* 0xDB0F4940 is PI in big endian format
* Would different representation affect the value of PI?
*/
int main(int argc, char* argv[])
{
if (argc < 2){
printf("Usage: endian input\n");
return 1;
}
if (isBigEndian(argv[1])){
printf("It's Big Endian\n");
}
else {
printf("It's Little Endian\n");
}
return 0;
}