UNIX网络编程练习-大小端判断
2015-11-30 10:59
411 查看
#include <stdlib.h> #include <stdio.h> #include <iostream> #include <string.h> #include <unistd.h> using namespace std; #define CPU_VENDOR_OS "sparc64-unknown-freebsd5.1" int main(int argc, char* argv[]) { union { short s; char c[sizeof(short)]; } un; un.s = 0x0102; printf("%s \n", CPU_VENDOR_OS); if(sizeof(short) == 2) { if(un.c[0] == 1 && un.c[1] == 2) cout<<"big-endian"<<endl; else if(un.c[0] == 2 && un.c[1] == 1) cout<<"little-endian"<<endl; else cout<<"unknow"<<endl; } else { cout<<"sizeof(short) = "<<sizeof(short)<<endl; } return 1; }
输出结果:
union 联合, 一种特殊的类, 数据共享同一段内存, 以达到节省空间的目的.
举例:
#include <stdlib.h> #include <stdio.h> #include <iostream> #include <string.h> #include <unistd.h> using namespace std; #define CPU_VENDOR_OS "sparc64-unknown-freebsd5.1" int main(int argc, char* argv[]) { union { int i; struct { char first; char second; } half; } un; un.i = 0x4241; cout<<hex<<un.i<<endl; cout<<hex<<(int)un.half.first<<" "<<(int)un.half.second<<endl; un.half.first = 'a'; un.half.second = 'b'; cout<<hex<<un.i<<endl; return 1; }
输出结果:
相关文章推荐
- 计算机网络性能指标
- HTTP协议头部与Keep-Alive模式详解
- SYN洪水攻击 原理
- Deep Learning(深度学习)网络资源
- 各种HTTPS站点的SSL证书 ,扩展SSL证书,密钥交换和身份验证机制汇总
- IOS学习之 网络编程(2)--GET请求和POST请求
- http请求的详细过程
- 使用nginx实现http访问自动跳转到https端口
- IOS学习之 网络编程(1)--HTTP协议
- 网络-Netty(一)-NIO概念Channel是一个对象,可以通过它读取和写入数据。可以把它看做IO中的流。但是它和流相比还有一些不同:
- HttpClient入门2
- iOS 网络编程 TCP/UDP HTTP
- BP神经网络——使用L2 进行regularization
- 专访DeepID发明者孙祎:关于深度学习与人脸算法的深层思考
- 利用TCP/IP参考模型分析数据传输过程
- 网络数据包分析 网卡Offload
- TCPdump抓包命令详解--摘
- openstack- unable to establish connection to http://controller
- 数据抓取之反爬虫规则:使用代理和http头信息
- 远控软件常见问题 网络人给您支招