【C++】大端和小端的理解

我的理解:

内存是以字节为单位的,一个字节是8位,也就是2位的16进制,所以首先将数据转成16进制,比如下面例子中的0x12345678,就表示了4个字节的数据。这里要注意一点,如果将数据改成0x10,那么这个还是4个字节的数据,主要是字节空间是由int所决定的,因此就需要将0x10改成0x00000010。

接着将16进制的2个数一组(正好1个字节)存放到内存中。

具体存放方式有不同机器决定,主要分为大端和小端。首先得记住所有的数据都是从最小位开始排列,比如0x12345678就先从78开始,接着56,34,12,原数据选取方式已经确定,在选取方式上不管大端小端都是一样。接着就看这4个字节的数据是从左边(低位)开始存还是右边(高位)开始存,如果从左边开始78,56,34,12那就是小端;如果从右边开始,那就是12,34,56,78这就是所谓的大端。

功能:从数据源所在地址src开始,拷贝len个字节到dest地址中。

#include 
#include 
void main()
{
    int n=0x12345678 ;
    char str[10];
    memcpy( str, &n, sizeof(int) );
    for( int i=0;i

运行结果:

小端机:

78

56

34

12

大端机:

12

34

56

78

你可能感兴趣的:(C++,【C++】)