现在各种架构的CPU,还有各种操作系统冲击着IT人员的眼睛。以Power处理器为例,上面可以安装 AIX,Linux,IBM I, K-Unix 几种操作系统。以面向大型机的S390处理器为例,上面可以安装 z/OS和Linux。
对于开发人员来说,很关心的一个问题就是字节序问题,尤其是使用C/C++语言的开发人员。面对如此多的CPU和操作系统的组合,很难全部记住每种组合上面的字节序是什么。如果手头恰好有服务器的话,通过一个测试程序来确定字节序也不失为一个快捷的方法。
其实通过测试程序确定字节序并不复杂,网上的相关文章和测试程序也很多,这里做个搬运工,展示一个简单的C语言程序来确定字节序,程序如下:
#include <stdio.h>
int main(void)
{
int a=0x11223344;
char *p = (char *)&a;
if (*p == 0x11)
printf("big endian ! \\n");
if (*p == 0x44)
printf("little endian ! \\n");
return 0;
}
在手头的一台Power9+Redhat 7.6服务器上运行过程如下
[root@clgitlab home]# gcc -o endian-test endian-test.c
[root@clgitlab home]#
[root@clgitlab home]# ./endian-test
little endian !
[root@clgitlab home]#
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论