• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > 节序问题:解析大小的端判定

节序问题:解析大小的端判定

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了节序,礼者 天理之节序,节序同风录,节序有终,节序如流等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

大小端的判断很简单,可判断了有什么用呢?这是一个难缠的问题,我最近就碰到了这样一个问题,比如,int a = 0x12345678,char* p = &a,那么p[0]等于多少呢?答案要么是0x12,要么是0x78,对吧,如果你知道他是小端(因为地球人都知道),那么你肯定就知道p[0] = 0x78,呵呵,换句话说,理解大小端对指针的运用还是有一定帮助的。

一、大小端概念
要判断电脑的大小端,肯定先要理解大小端的概念:
大端模式(Big-Endian),是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,即高低高低;
小端模式(Little-Endian),是指数据的高位,保存在内存的高地址中,而数据的低位,保存在内存的低地址中,即高高低低。

二、为什么要有大小端模式之分?
这是因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(要看具体的编译器),另外,对于位数大于 8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如果将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。例如一个16bit的short型x,在内存中的地址为0x0010,x的值为0x1122,那么0x11为高字节,0x22为低字节。对于大端模式,就将0x11放在低地址中,即0x0010中,0x22放在高地址中,即0x0011中。小端模式,刚好相反。我们常用的X86结构是小端模式,而KEIL C51则为大端模式。很多的ARM,DSP都为小端模式。有些ARM处理器还可以由硬件来选择是大端模式还是小端模式。
 
三、判断大小端的方法

方法一(强转):
</div>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 基于大端法、小端法以及网络字节序的深入理解
  • 节序问题:解析大小的端判定

相关文章

  • 2022-04-30C语言结构体指针(指向结构体的指针)详解
  • 2017-05-28C语言中sscanf()函数的字符串格式化用法
  • 2017-05-28C语言数组入门之数组的声明与二维数组的模拟
  • 2017-05-28基于C语言实现五子棋游戏完整实例代码
  • 2017-05-28c++中虚函数和纯虚函数的作用与区别
  • 2017-05-28C++文件依存关系介绍
  • 2017-05-28C++设置事件通知线程工作的方法
  • 2017-05-28C++实现图形界面时钟表盘代码
  • 2017-05-28C语言求向量和的两则问题解答分享
  • 2017-05-28采用C++实现区间图着色问题(贪心算法)实例详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++编程中变量的声明和定义以及预处理命令解析
    • 深入理解C++之策略模式
    • 内联函数inline与宏定义深入解析
    • 浅析C/C++中被人误解的SIZEOF
    • C++ 类的静态成员深入解析
    • C语言安全编码之数组索引位的合法范围
    • C++对象的浅复制和深复制详解及简单实例
    • C++11的新特性简单汇总介绍 (二)
    • 关于C/C++中的side effect(负效应)和sequence point(序列点)
    • 贪心算法的C语言实现与运用详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有