碼字不易,對你有幫助 點贊 /轉發↪️/關注支援一下作者
微信搜公衆号:
不會程式設計的程式圓 看更多幹貨,擷取第一時間更新
如何用程式判斷自己的機器是大端還是小端?
通常情況下,我們的計算機都是小端存儲模式。
小端:數字的低位存儲到記憶體的低位址上。
大端:數字的低位存儲到記憶體的高位址上。
我們在 VS 中建立一個臨時變臉
int
然後打開調試器,看到變量 a 在記憶體中是這樣存儲的:
0x0133FC50
對于 Vs 調試中記憶體視窗的這行資訊應該如何了解呢?它就表示:
十六進制數每兩位表示一個位元組,位址也是十六進制數;int 類型在 32 位機器上大小為 4 個位元組。
如何了解十六進制數每兩位表示一個位元組?十六進制數每一位的取值範圍是 0 ~ 15,表示 16 種不同可能,對應 4 個二進制位(0000 ~ 1111),是以每一位十六進制可以表示 4 個二進制位,那麼兩個十六進制位就表示 8 個二進制位,也就是 1 個位元組。
可以看到,在我的機器上,低位 44 存儲在 低位址(0x0133FC50)上,是以我的機器是 小端存儲模式。
如果是大端存儲模式,變量 a 在記憶體中的存儲應該如下圖所示:
現在,讓我們用程式來驗證一下我們的機器到底是大端還是小端。
方法一
#include
方法二
#include
如果本文你有地方沒有看懂,推薦閱讀以下文章,可以幫助你了解 :
- 一文看懂枚舉&結構&聯合
程式設計反思錄:給你三個必須要學C語言的理由!zhuanlan.zhihu.com
以上就是本次的内容。
如果文章有錯誤歡迎指正和補充,感謝!
最後,如果你還有什麼問題或者想知道到的,可以 在評論區/私信 告訴我呦,我可以在後面的文章加上你的真知灼見 。
關注我,看更多幹貨!
我是程式圓,我們下次再見。