22 大端序和小端序
分析下列程序,输出结果(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 大端序和小端序相关推荐
- 什么是大端序和小端序,为什么要有字节序
什么是字节序 字节序,又称端序或尾序(英语中用单词:Endianness 表示),在计算机领域中,指电脑内存中或在数字通信链路中,占用多个字节的数据的字节排列顺序. 在几乎所有的平台上,多字节对象都被 ...
- Golang的大端序和小端序
一 什么是字节序 字节(Byte)是计算机世界的计量单位,比如,一部电视剧是10G个字节(1GB),一张图片是1K个字节(1KB).这些数据量有多有少,大多数时候,一个字节肯定是装不下的,这个时候我们 ...
- 小端模式和大端模式_大端序和小端序
字节存储顺序主要分为大端序(Big-endian)和小端序(Little-endian),区别如下 Big-endian:高位字节存入低地址,低位字节存入高地址 Little-endian:低位字节存 ...
- Java int 转大端序、小端序
采用小端法, 字节的排序是从最无意义的字节到最有意义的字节. 而大端法中, 字节的排序是从最有意义的字节到最无意义的字节. public static byte[] intToByteBig(int ...
- 主机字节序(小端:X86,STM32;大端:51单片机,STM8)
文章目录 1.1 主机字节序 1.1 主机字节序 在几乎所有的计算机上,多字节的对象,都被表示为连续的字节序列. 数据的高字节 保存在 内存的低地址,称为 大端模式(大端序): 数据的高字节 保存在 ...
- 大端模式与小端模式的详解分析
大端序与小端序 何为大端序,小端序? 简单点说,就是字节的存储顺序,如果数据都是单字节的,那怎么存储无所谓了,但是对于多字节数据,比如int,double等,就要考虑存储的顺序了.注意字节序是硬件层面 ...
- 【网络编程】大端模式和小端模式(大头序和小头序)
转自:http://my.oschina.net/renhc/blog/37130 大端:多字节值的大端存储在该值的起始位置:(老大站排头为大) 小端:多字节值的小端存储在该值的起始位置:(老小站排头 ...
- 【转】大端模式与小端模式、网络字节顺序与主机字节顺序 (经典)
大端模式与小端模式 一.概念及详解 在各种体系的计算机中通常采用的字节存储机制主要有两种: big-endian和little-endian,即大端模式和小端模式. 先回顾两个关键词,MSB和LSB: ...
- 网络传输大端序_基于大端法、小端法以及网络字节序的深入理解
关于字节序(大端法.小端法)的定义<UNXI网络编程>定义:术语"小端"和"大端"表示多字节值的哪一端(小端或大端)存储在该值的起始地址.小端存在起 ...
最新文章
- 华为总裁任正非谈企业管理:正确的方向来自于妥协
- java实现md5加密示例
- img 光盘映像文件已损坏_系统封装||还在用MSDN下载Windows镜像文件?你out了,用这个就可以了...
- windows安装mongodb(快速简易版)
- 如何修改浏览器服务器时间格式,浏览器模式怎么改模式
- 简易分享功能(非第三方)
- ORACLE SQL*PLUS 命令大全
- 数论之神 HYSBZ - 2219 (原根+指标+bsgs+crt+exgcd+思维)
- 【学习笔记】计算机导论之计算机硬件
- C语言结构体练习-互动粒子仿真
- 推荐系统思维导图——第一章
- UNIX高手的10个习惯之一
- uni-app android权限
- 单月营业额一个亿,任泉李冰冰黄晓明追着投钱!这家企业是谁?
- vant 动态 粘性布局_Sticky 粘性布局
- excel的常用函数
- 电子设计教程12:Buck降压电路
- 直流无刷电机极对数图解(simulink)
- 李孟:构建强健的DNS解析系统
- 爬虫之ADSL拨号代理
热门文章
- 31销售是让用户用到货真价实的产品
- java 设置文本颜色_设置文本中的字体的颜色
- jquery实现上下左右键盘监听_jQuery监听键盘事件及相关操作使用
- python列表输入10个数、并排序-我该如何对一百万个数字进行排序,并且仅在Python中打印前十个数字?...
- f分布表完整图a=0.05_2019年05月16日,沪深A股股票分析
- python需要的基础_推荐收藏!小白不要怕!一周学全Python面试基础(2)
- matlab cell计算,MATLAB Cell数组 | 学步园
- 单条MySQL最长_MySQL 单条记录长度最大65535
- Qt工作笔记-如何打包我们用 Qt 写的软件 - Linux 篇
- C++工作笔记-使用namespace构建常量头文件