40 lines
673 B
C
Executable File
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;
|
|
}
|