什么是⼩端模式,什么是⼤端模式
⼤⼩端字节序
字节序
前⾔
内存在读写数据的时候,都是以字节为单位进⾏读写的,其最⼩的读写单位也是字节。⼀个字节占8位,如果暂且只考虑⽆符号数,那么其能表⽰的范围只有0 ~ 255这256个整数数值。如果将⼀个字节数据存⼊内存,那么将很好的对这⼀个字节的数据进⾏读写操作。然⽽,事实上却是,现实⽣活中的数据往往都是⼤于⼀个字节的,例如,在我们现在常⽤的PC机(32位或64位)中,占⽤⼀个字节的数据类型很少很少了,常见的就char,int都需要占⽤4个字节,double更是占⽤8个字节。就因为这个原因,对于这个⼤于⼀个字节的数据的存储就不得不⽤多个字节来对其进⾏存储了,那么现在问题就来了,这些⼤于⼀个字节的数据怎么对其进⾏读写操作的呢?
什么是字节序?
我们现在已经知道了,⼤于⼀个字节的数据在内存中的存储肯定也是⼤于⼀个字节的,但是呢,正所谓解决了多字节的存储问题,就引⼊了⼀个新的问题,那就是,多个字节的数据将怎么对其进⾏读写操作呢?
由此就引⼊了字节序这么个东西了。字节序,顾名思义,就是字节顺序。
现在不妨请⼤家想⼀想,如果我们这⾥有⼀个两字节的整数数据存在了内存当中,我们在对这个两字节的数据进⾏读取的时候,最⼤的问题是啥?
这⾥补充⼀下,刚提过的,内存数据的读写操作都是以字节为单位的,也就是⼀个字节⼀个字节的操作,并且是从内存的低地址向⾼地址⽅向的。在读取内存数据时候有两个基本的的操作,⼀个“随机”的,⼀个是“线性”的。“随机”的意思就是内存是个随机存储器,也就是我们常说的RAM((Random Access Memory),因此就能跳到内存的任意位置去读取那⾥的存储数据(这也是为啥我们内存条的访问速度⽐ROM快很多的⼀个原因)。“线性”的意思就是,在读取内存数据的时候,就得从随机读取的开始地址处,像⼀条直线⼀样的从低地址向⾼地址读取。
那么我们对这个两字节的数据进⾏读取的时候,最⼤的问题就莫过于是:我们当前读取的这个字节是这个两字节数据的⾼位还是低位呢?
假设,这个两字节的整数数据,其⼗六进制是:0x1234。我们现在读取到的⼀个字节是0x12,那么你怎么知道这个0x12是他的⾼字节还是他的低字节呢,如果这个都搞不清的话,那么在对数据进⾏读写的时候,肯定也都是错的。
也就是说,数据的低字节应该存在内存的⾼地址处还是低地址处?由此就出现了字节序,完整的说就是数据的以字节的⽅式进⾏存储的时候,其低位在内存中的存储顺序。这就是字节序
⼤端字节序、⼩端字节序
rom是什么由于数据在内存中的存储顺序,就出现了两种顺序,并且是两种完全相反的顺序。
⼩端字节序⼤端字节序
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论