判断机器是big-endianlittle-endian

Posted wsw_seu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断机器是big-endianlittle-endian相关的知识,希望对你有一定的参考价值。


联合体union和大小端(big-endian、little-endian):
下边示范了一种用途,代表四个含义的四个变量,但是可以用一个int来操作,直接int赋值,无论内存访问(指针大小的整数倍,访问才有效率),
还是时间复杂度(一次和四次的区别,而且这四次有三次都是不整齐的地址),都会低一些。



1
#include<stdio.h> 2 union var{ 3 char c[4]; 4 int i; 5 }; 6 7 int main(){ 8 union var data; 9 data.c[0] = 0x04;//因为是char类型,数字不要太大,算算ascii的范围~ 10 data.c[1] = 0x03;//写成16进制为了方便直接打印内存中的值对比 11 data.c[2] = 0x02; 12 data.c[3] = 0x11; 13 //数组中下标低的,地址也低,按地址从低到高,内存内容依次为:04,03,02,11。总共四字节! 14 //而把四个字节作为一个整体(不分类型,直接打印十六进制),应该从内存高地址到低地址看,0x11020304,低位04放在低地址上。 15 printf("%x\n",data.i); 16 }

 

以上是关于判断机器是big-endianlittle-endian的主要内容,如果未能解决你的问题,请参考以下文章

如果判断机器是大端还是小端

如何判断一台机器是物理机还是虚拟机

ABB机器人判断输入信号有延时,求大神指教~

机器学习-朴素贝叶斯应用-判断垃圾邮件

Python3玩转儿 机器学习

少儿编程 电子学会机器人等级考试一级真题解析判断题2018-3