C语言判断大端小端
作者:互联网
#include <stdio.h> #include <assert.h> int my_if(int a) { char* p =(char *) &a; assert(p != NULL); //断言函数(防止为空指针) //直接返回值: //1的截取为:01 (截取:char类型为1字节截取整形地址高地址) //放于高地址则返回:00-0 //放于低地址则返回:01-1 return *p; } int main() { int a = 1; //内存中 左边:低地址 右边 :高地址 int b=my_if(a); //1的内存存储为: 0x 00(高位) 00 00 01(低位)----->存储规则 if (0 == b) { printf("大端\n"); // 数据低位放于存储高位,数据高位放于存储低位. 0x 00 00 00 01 } else { printf("小端\n"); //与之相反 : 0x 01 00 00 00 } return 0; }
精简版:(自定义函数中直接返回值)
#include <stdio.h> #include <assert.h> int my_if(int a) { return *(char*)&a; //char* p =(char *) &a; //assert(p != NULL); //断言函数(防止为空指针) ////直接返回值: ////1的截取为:01 (截取:char类型为1字节截取整形地址高地址) ////放于高地址则返回:00-0 ////放于低地址则返回:01-1 //return *p; } int main() { int a = 1; //内存中 左边:低地址 右边 :高地址 int b=my_if(a); //1的内存存储为: 0x 00(高位) 00 00 01(低位)----->存储规则 if (0 == b) { printf("大端\n"); // 数据低位放于存储高位,数据高位放于存储低位. 0x 00 00 00 01 } else { printf("小端\n"); //与之相反 : 0x 01 00 00 00 } return 0; }
标签:小端,00,01,int,0x,C语言,char,地址,大端 来源: https://blog.51cto.com/u_15144773/2712823