测试系统存储是大端模式还是小端模式的方法
生活随笔
收集整理的這篇文章主要介紹了
测试系统存储是大端模式还是小端模式的方法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
請寫一個C 函數,若處理器是Big_endian 的,則返回0;若是Little_endian 的,則返回1。
先分析一下,按照上面關于大小端模式的定義,假設int 類型變量i 被初始化為1。
以大端模式存儲,其內存布局如下圖:
?
以小端模式存儲,其內存布局如下圖:
?變量i 占4 個字節,但只有一個字節的值為1,另外三個字節的值都為0。如果取出低地址上的值為0,毫無疑問,這是大端模式;如果取出低地址上的值為1,毫無疑問,這是
小端模式。既然如此,我們完全可以利用union 類型數據的特點:所有成員的起始地址一致。
?
[cpp]?view plaincopy總結
以上是生活随笔為你收集整理的测试系统存储是大端模式还是小端模式的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: struct 与class 的区别?
- 下一篇: int *ptr=(int *)(a+1