博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
大小端判断
阅读量:6418 次
发布时间:2019-06-23

本文共 1172 字,大约阅读时间需要 3 分钟。

 
  大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
  小端模式,是指数据的高位保存在内存的高中,而数 据的低位保存在内存的低地址中,这种存储模式将地址的高低和位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。
 
CPU大小端判断函数,纯C代码
int IsLittleendian( ){    //Little-endian模式的CPU对操作数的存放方式是从低字节到高字节,而Big-endian模式对操作数的存放方式是从高字节到低字节。    //[大小端存储问题]: 小端方式中(i占至少两个字节的长度),i所分配的内存最小地址那个字节中就存着1,其他字节是0.    //大端的话则1在i的最高地址字节处存放,char是一个字节,所以强制将char型量p指向i则p指向的一定是i的最低地址,    //那么就可以判断p中的值是不是1来确定是不是小端。    //若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1    union w {
//联合体union的存放顺序是所有成员都从低地址开始存放 int i; char c; } u; u.i = 1; return(u.c ==1);}

 

下面是完整的例子

/////  Copyright (c) 2013, ShangHai Onewave Inc.////    FileName:   judgeBigLittleendian.cpp////    Description:////    Created:    2014年03月31日 星期一 13时41分41秒//    Revision:   Revision: 1.0//    Compiler:   g++/////#include 
using namespace std;int judgeLittleEndian(){ union{ int i; char c; }u; u.i = 1; return u.c;}int main(){ if(judgeLittleEndian()) cout<<"\tLittle Endian!"<

 

转载于:https://www.cnblogs.com/yangtze736-2013-3-6/p/3635610.html

你可能感兴趣的文章
《2040大预言:高科技引擎与社会新秩序》—— 导读
查看>>
数据库操作:添加、插入、更新语句
查看>>
微软宠爱高通/ARM:欲彻底弃Wintel
查看>>
降低数据中心能源消耗
查看>>
IT众包不养技术人员该怎么玩?
查看>>
不设置解密后门就罚款!苹果或将面临处罚
查看>>
成为Linux内核高手的4个方法
查看>>
数据库索引的作用和长处缺点
查看>>
自主编写部署性能测试的备
查看>>
10余智慧项目建设初见成效 南岸用智慧城市开启智慧生活
查看>>
智能家居蓝海 如何才能破解“外热内冷”的尴尬?
查看>>
1个月千余人参加!阿里云大学互联网技能“轻”认证受热捧
查看>>
互金网络安全良好率才一半 信息泄露成主要风险
查看>>
wap前端测试改进总结
查看>>
大数据对企业的种种影响
查看>>
Windows8正式谢幕
查看>>
《Adobe Illustrator CC 2014中文版经典教程(彩色版)》—第1课0.4节创建形状
查看>>
《大咖讲Wireshark网络分析》—从一道面试题开始说起
查看>>
《算法基础:打开算法之门》一3.6 小结
查看>>
《构建高可用Linux服务器 第3版》—— 1.1 使用PXE+DHCP+Apache+Kickstart无人值守安装CentOS 5.8 x86_64...
查看>>