【C語言深度剖析】測試系統儲存是大端模式還是小端模式的方法
請寫一個C 函式,若處理器是Big_endian 的,則返回0;若是Little_endian 的,則返回1。
先分析一下,按照上面關於大小端模式的定義,假設int 型別變數i 被初始化為1。
以大端模式儲存,其記憶體佈局如下圖:
以小端模式儲存,其記憶體佈局如下圖:
變數i 佔4 個位元組,但只有一個位元組的值為1,另外三個位元組的值都為0。如果取出低地址上的值為0,毫無疑問,這是大端模式;如果取出低地址上的值為1,毫無疑問,這是
小端模式。既然如此,我們完全可以利用union 型別資料的特點:所有成員的起始地址一致。
#include <iostream>
using namespace std;
int checkSystem( )
{
union check
{
int i;
char ch;
} c;
c.i = 1;
return (c.ch ==1);
}
int main()
{
int j;
j = checkSystem();
cout<<j<<endl;
if(j==1)
cout<<"小端模式"<<endl;
else if(j == 0)
cout<<"大端模式"<<endl;
getchar();
//system("pause");
}
相關文章
- 計算機系統中的大端模式和小端模式計算機模式
- 資料在記憶體中儲存的方式:大端模式與小端模式記憶體模式
- 分享:大端小端-位元組儲存順序
- C語言 | 深度剖析資料在記憶體中的儲存(原碼,反碼,補碼,大小端儲存)C語言記憶體
- 大小端儲存模式模式
- C語言深度剖析-筆記C語言筆記
- 語言是 Go 還是 Golang?Golang
- 深度剖析免費OA系統是如何盈利
- 到底是倉庫模式好,還是MVC模式好?模式MVC
- 例項解析Oracle是共享模式還是專用模式Oracle模式
- 雲端計算的未來是超市模式還是電廠模式?模式
- C語言深度剖析——讀書筆記C語言筆記
- win10改了系統語言還是亂碼怎麼回事 win10系統更改系統語言後還是亂碼的解決步驟Win10
- 我們是如何做 go 語言系統測試覆蓋率收集的?Go
- C# 中大端序與小端序C#
- C 語言是怎樣實現儲存一個 PHP5 的變數?PHP變數
- Win10系統開啟測試模式的方法【圖文】Win10模式
- 關閉windows10系統測試模式的方法【圖文】Windows模式
- [C語言] 浮點型儲存C語言
- Windows系統上帝模式是什麼?Win7系統與win10系統上帝模式開啟方法Windows模式Win7Win10
- Postmark測試後端儲存效能後端
- Redis 儲存物件資訊是用 Hash 還是 StringRedis物件
- 基於Gin+Gorm框架搭建MVC模式的Go語言後端系統GoORM框架MVC模式後端
- 學習C語言還是學習Python爬蟲?C語言Python爬蟲
- 判斷是蘋果系統還是安卓系統的代蘋果安卓
- C語言單元測試C語言
- 儲存過程中user_tables的owner是definer還是invoker儲存過程
- 【J2EE】:MVC是框架?是設計模式?是架構?還是……MVC框架設計模式架構
- C語言 EOF是什麼?C語言
- 如何檢視系統是 dedicate 或 MTS 模式模式
- [譯] JavaScript 的函數語言程式設計是一種反模式JavaScript函數程式設計模式
- 系列:開源是一種開發模式、商業模式還是其他什麼?(一)模式
- CNNIC:藥品O2O,輕模式還是重模式?CNN模式
- 24. 一個普通main方法的執行,是單執行緒模式還是多執行緒模式?為什麼?AI執行緒模式
- 虛擬共享儲存:選iSCSI還是NFS?NFS
- DDR儲存器系統是消費電子的核心
- MVVM模式到底是什麼?實現原理剖析MVVM模式
- go區域性變數的儲存空間是堆還是棧?Go變數