c语言强制转换可以判断大小端吗


我们直接将其以字符串形式输出:

悝论上来讲我们得到的结果应该是abcdefgh但是却出现了相反的结果这是为什么呢?
这是因为我们的CPU使用的是小端模式即数据的高字节保存在內存的高地址中,而数据的低字节保存在内存的低地址中
所以当我们直接按字符串打印0x6162时结果会输出ba而不是ab。
那我们如何能够不改变小端模式而输出为序呢

结果:
当然这种办法是非常直接的,我们是直接使用用指针类型强制转换取到数组中的地址,再使用指针交换的
下面我们使用自定义函数Memcpy进行转换。

}

大端模式是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址

小端模式,是指数据的高字节保存在内存的高地址中而数据的低字节保存在内存的低地址中。

利用指针的强制类型转换取到低地址

利用共用体所有数据都从同一地址开始存储,从低位地址开始存储

}

请使用绑定的手机号(国内)编輯短信内容 发送至 进行短信验证发送完成后点击“我已发送”按钮

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信