字节序不是由操作系统决定的,而是由cpu架构决定的
2016-07-23 17:20
483 查看
最开始学的时候不知道听谁说的linux和windows字节序不同,字节序由操作系统决定。
然而今天才明白
字节序不是由操作系统决定的,而是由cpu架构决定的
证明:
1.首先明确我们怎么确定cpu架构
CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的CPU指令集分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU。两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM公司的CPU是PowerPC架构,ARM公司是ARM架构。
2.声明一下我的是X86架构
在windows下面我写了一个程序
Windows中运行情况
在我的虚拟机redhat中
发现都是低地址中都是放的低位字节★
3.我们还要了解到
端模式分为:小端字节序和大端字节序,也就是字节在内存中的顺序。
小端字节序:低字节存于内存低地址;高字节存于内存高地址。
大端字节序:高字节存于内存低地址;低字节存于内存高地址。
网络字节序:就是大端字节序。规定不同系统间通信一律采用网络字节序。
4.分析:(1)我的redhat和windows是共用一个cpu的,所以架构肯定是一样的(都是x86)。
(2)在redhat和windows中结果都是一样的(小端字节序)。
5.由此我们可以证明得字:节序不是由操作系统决定的,而是由cpu架构决定的
总结:不能全相信网上说的(比如这篇文章,差点误导我,但是也是这篇文章给我了好奇,去证明。http://blog.csdn.net/forestlight/article/details/6933528)当然这只是这篇文章的一个小不足,整篇文章也是写的很不错的。
然而今天才明白
字节序不是由操作系统决定的,而是由cpu架构决定的
证明:
1.首先明确我们怎么确定cpu架构
CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的CPU指令集分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简指令集CPU。两个不同品牌的CPU,其产品的架构也不相同,例如,Intel、AMD的CPU是X86架构的,而IBM公司的CPU是PowerPC架构,ARM公司是ARM架构。
2.声明一下我的是X86架构
在windows下面我写了一个程序
#include<stdio.h> int main() { int i = 0x10203040; char *p = (char *)(&i); printf("内存地址 :%x %x\n",p,*p); printf("内存地址 :%x %x\n",p+1,*(p+1)); printf("内存地址 :%x %x\n",p+2,*(p+2)); printf("内存地址 :%x %x\n",p+3,*(p+3)); }
Windows中运行情况
在我的虚拟机redhat中
发现都是低地址中都是放的低位字节★
3.我们还要了解到
端模式分为:小端字节序和大端字节序,也就是字节在内存中的顺序。
小端字节序:低字节存于内存低地址;高字节存于内存高地址。
大端字节序:高字节存于内存低地址;低字节存于内存高地址。
网络字节序:就是大端字节序。规定不同系统间通信一律采用网络字节序。
4.分析:(1)我的redhat和windows是共用一个cpu的,所以架构肯定是一样的(都是x86)。
(2)在redhat和windows中结果都是一样的(小端字节序)。
5.由此我们可以证明得字:节序不是由操作系统决定的,而是由cpu架构决定的
总结:不能全相信网上说的(比如这篇文章,差点误导我,但是也是这篇文章给我了好奇,去证明。http://blog.csdn.net/forestlight/article/details/6933528)当然这只是这篇文章的一个小不足,整篇文章也是写的很不错的。
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何重装TCP/IP协议
- Windows 8 官方高清壁纸欣赏与下载
- 谁是桌面王者?Win PK Linux三大镇山之宝
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- 应用领航:盘点那些年我们一起追过的OS
- Windows Clang开发环境备忘
- 从Windows系统下访问Linux分区相关软件
- 如何写好 C main 函数
- 无奇不有!盘点各国自己开发的操作系统
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows下搭建本地SVN服务器
- 使用Windows原生命令一键清空剪贴板
- windows用windeployqt发布qt quick application程序
- 利用开源软件打造自己的全功能远程工具
- Windows 8虚拟机不能全屏的解决方法
- 虚拟化基础架构Windows 2008篇之1-虚拟化基础服务概述
- 虚拟化基础架构Windows 2008篇之5-安装Windows部署服务