【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語言記憶體
- 大小端儲存模式模式
- 語言是 Go 還是 Golang?Golang
- 深度剖析免費OA系統是如何盈利
- 到底是倉庫模式好,還是MVC模式好?模式MVC
- win10改了系統語言還是亂碼怎麼回事 win10系統更改系統語言後還是亂碼的解決步驟Win10
- C 語言是怎樣實現儲存一個 PHP5 的變數?PHP變數
- [C語言] 浮點型儲存C語言
- 我們是如何做 go 語言系統測試覆蓋率收集的?Go
- C# 中大端序與小端序C#
- Windows系統上帝模式是什麼?Win7系統與win10系統上帝模式開啟方法Windows模式Win7Win10
- 基於Gin+Gorm框架搭建MVC模式的Go語言後端系統GoORM框架MVC模式後端
- 學習C語言還是學習Python爬蟲?C語言Python爬蟲
- 大端小端講解
- Redis 儲存物件資訊是用 Hash 還是 StringRedis物件
- 大端和小端的問題
- 【C語言】整型在記憶體中的儲存C語言記憶體
- [譯] JavaScript 的函數語言程式設計是一種反模式JavaScript函數程式設計模式
- IPFS的檔案儲存模式模式
- 如何在資料庫中儲存小數:FLOAT、DECIMAL還是BIGINT?資料庫Decimal
- Java的Void方法是反模式的? - DZoneJava模式
- OpenAI 是怎麼“壓力測試”大型語言模型的?OpenAI模型
- 區塊鏈Yottachain到底是如何改變資料儲存模式?區塊鏈AI模式
- 24. 一個普通main方法的執行,是單執行緒模式還是多執行緒模式?為什麼?AI執行緒模式
- DDR儲存器系統是消費電子的核心
- 大端序和小端序
- 《我是面試官》設計模式-單例模式面試設計模式單例
- 系列:開源是一種開發模式、商業模式還是其他什麼?(一)模式
- MVVM模式到底是什麼?實現原理剖析MVVM模式
- 語言是思考的作業系統 - François Chollet作業系統
- go區域性變數的儲存空間是堆還是棧?Go變數
- 【日常分享】Linux系統檢視是32位還是64位的方法Linux
- 什麼是大資料系統儲存及管理?大資料
- C#手術麻醉系統原始碼,前後端分離,倉儲模式開發C#原始碼後端模式
- IM系統海量訊息資料是怎麼儲存的?
- golang之大端序、小端序Golang
- 設計模式(Java語言)- 原型模式設計模式Java原型
- 【C語言進階】通訊錄的儲存和載入C語言