C/C++中字节序、类型转化的深入理解
如果将 字节序 、 类型转化 单独一个拿出来说时,大家可能都觉得很简单,但是理解的不深入。如果将其结合起来探讨,可能我们就会理解的很透彻。 关于字节序和类型转化的基础,大家如果不太理解,可以参考以下博客: https://my.oschina.net/u/1783725/blog/647973 大小字节序 https://my.oschina.net/u/1783725/blog/700970 类型转化 在进入正题之前,在啰嗦一句: 系统位数不同对应数据类型的字节数大小也不同 系统位数 int unsigned long unsigned long long 32位 4字节 4字节 8字节 64位 8字节 8字节 8字节 详细介绍两者之间的联系 字节序: 操作的内存, 就是将我们看到的数据存放在内存中的规则 。 大字节序:大端有效 , 高位数据先放入低地址内存 , 低位数据放入高地址内存 ;小字节序:小端有效, 低位数据先放入低地址内存 , 高位数据再放入高地址内存 操作内存(如:memcpy)就需要考虑字节序 类型转化: 操作的是读出的数据, 就是将从内存中读取的数据,根据类型字节的大小进行转化 。 位数多的转化为位数小的(会截断高位的数据,留下地位的数据),位数小的转化为位数多的(将高位的数据补为0)。 一个例子来读懂他们 1、 赋值与字节序无关,操作内存(memcpy