分析下列程序,输出结果(AC)

#include<stdio.h>
#include<stdlib.h>
union X{int32_t a;struct {int16_t b;int16_t c;};
};
int main() {X x;x.a=0x20150810;printf("%x,%x\n",x.b,x.c);
}

  A 2015,810    B50810,201    C810,2015    D20150,810

分析: Little-Endian: 低地址存放低位、Big-Endian: 低地址存放高位

32bit宽的数0x12345678

在Little-endian模式CPU内存中的存放方式(假设从地址0x4000开始存放)为:

内存地址     0x4000     0x4001     0x4002     0x4003
                                          存放内容     0x78        0x56        0x34         0x12
而在Big- endian模式CPU内存中的存放方式则为:
                                          内存地址     0x4000     0x4001     0x4002     0x4003
                                          存放内容     0x12         0x34        0x56         0x78

0x20150810

如果按照大端模式存储:从低地址到高地址:20 15 08 10

输出从低地址到高地址:20 15 08 10

如果按照小端模式存储:从低地址到高地址:10 08 15 20

输出从高地址到低地址:08 10 20 15

为什么小端序是从高地址输出,大端序是从地低地址输出?

因为你的存储顺序都不同,如果按照相同的方式读取(比如从高到低),那读取来的结果就有两种可能,那么必有一种错了啊。题里是把一个int读成两个short,所以有两种可能。但是假如int读成int,无论是大端小端,绝对仅由一种结果。

---------------------------------------------------------------------------------------------------------------------------

#include<stdio.h>
int fun(char s[]) {char *p=s;while(*p!=0) p++;return (p-s);
}
main() {printf("%d\n",fun("OABCDEF"));
}

  最后输出结果是7.

------------------------------------------------------------------------------------------------------------------------

一个算法应该具有以下五个重要的特征:   

1、有穷性: 一个算法必须保证执行有限步之后结束;   

2、确切性: 算法的每一步骤必须有确切的定义;   

3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定除了初始条件;   

4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的;   

5、可行性: 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。

转载于:https://www.cnblogs.com/dd2hm/p/7277248.html

22 大端序和小端序相关推荐

  1. 什么是大端序和小端序,为什么要有字节序

    什么是字节序 字节序,又称端序或尾序(英语中用单词:Endianness 表示),在计算机领域中,指电脑内存中或在数字通信链路中,占用多个字节的数据的字节排列顺序. 在几乎所有的平台上,多字节对象都被 ...

  2. Golang的大端序和小端序

    一 什么是字节序 字节(Byte)是计算机世界的计量单位,比如,一部电视剧是10G个字节(1GB),一张图片是1K个字节(1KB).这些数据量有多有少,大多数时候,一个字节肯定是装不下的,这个时候我们 ...

  3. 小端模式和大端模式_大端序和小端序

    字节存储顺序主要分为大端序(Big-endian)和小端序(Little-endian),区别如下 Big-endian:高位字节存入低地址,低位字节存入高地址 Little-endian:低位字节存 ...

  4. Java int 转大端序、小端序

    采用小端法, 字节的排序是从最无意义的字节到最有意义的字节. 而大端法中, 字节的排序是从最有意义的字节到最无意义的字节. public static byte[] intToByteBig(int ...

  5. 主机字节序(小端:X86,STM32;大端:51单片机,STM8)

    文章目录 1.1 主机字节序 1.1 主机字节序 在几乎所有的计算机上,多字节的对象,都被表示为连续的字节序列. 数据的高字节 保存在 内存的低地址,称为 大端模式(大端序): 数据的高字节 保存在 ...

  6. 大端模式与小端模式的详解分析

    大端序与小端序 何为大端序,小端序? 简单点说,就是字节的存储顺序,如果数据都是单字节的,那怎么存储无所谓了,但是对于多字节数据,比如int,double等,就要考虑存储的顺序了.注意字节序是硬件层面 ...

  7. 【网络编程】大端模式和小端模式(大头序和小头序)

    转自:http://my.oschina.net/renhc/blog/37130 大端:多字节值的大端存储在该值的起始位置:(老大站排头为大) 小端:多字节值的小端存储在该值的起始位置:(老小站排头 ...

  8. 【转】大端模式与小端模式、网络字节顺序与主机字节顺序 (经典)

    大端模式与小端模式 一.概念及详解 在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式. 先回顾两个关键词,MSB和LSB: ...

  9. 网络传输大端序_基于大端法、小端法以及网络字节序的深入理解

    关于字节序(大端法.小端法)的定义<UNXI网络编程>定义:术语"小端"和"大端"表示多字节值的哪一端(小端或大端)存储在该值的起始地址.小端存在起 ...

最新文章

  1. 华为总裁任正非谈企业管理:正确的方向来自于妥协
  2. java实现md5加密示例
  3. img 光盘映像文件已损坏_系统封装||还在用MSDN下载Windows镜像文件?你out了,用这个就可以了...
  4. windows安装mongodb(快速简易版)
  5. 如何修改浏览器服务器时间格式,浏览器模式怎么改模式
  6. 简易分享功能(非第三方)
  7. ORACLE SQL*PLUS 命令大全
  8. 数论之神 HYSBZ - 2219 (原根+指标+bsgs+crt+exgcd+思维)
  9. 【学习笔记】计算机导论之计算机硬件
  10. C语言结构体练习-互动粒子仿真
  11. 推荐系统思维导图——第一章
  12. UNIX高手的10个习惯之一
  13. uni-app android权限
  14. 单月营业额一个亿,任泉李冰冰黄晓明追着投钱!这家企业是谁?
  15. vant 动态 粘性布局_Sticky 粘性布局
  16. excel的常用函数
  17. 电子设计教程12:Buck降压电路
  18. 直流无刷电机极对数图解(simulink)
  19. 李孟:构建强健的DNS解析系统
  20. 爬虫之ADSL拨号代理

热门文章

  1. 31销售是让用户用到货真价实的产品
  2. java 设置文本颜色_设置文本中的字体的颜色
  3. jquery实现上下左右键盘监听_jQuery监听键盘事件及相关操作使用
  4. python列表输入10个数、并排序-我该如何对一百万个数字进行排序,并且仅在Python中打印前十个数字?...
  5. f分布表完整图a=0.05_2019年05月16日,沪深A股股票分析
  6. python需要的基础_推荐收藏!小白不要怕!一周学全Python面试基础(2)
  7. matlab cell计算,MATLAB Cell数组 | 学步园
  8. 单条MySQL最长_MySQL 单条记录长度最大65535
  9. Qt工作笔记-如何打包我们用 Qt 写的软件 - Linux 篇
  10. C++工作笔记-使用namespace构建常量头文件