8. 判斷當前系統是大端對齊還是小端對齊

題目

判斷當前系統是大端對齊還是小端對齊

解析

首先需要明白什麼是大端對齊,小端對齊。

  1. Little-Endian就是數字的低位放內存的低地址端,高位放在內存的高地址端。(爲了方便記憶, 我都稱小端對齊纔是真對齊, 因爲小對小, 大對大)
  2. Big-Endian就是數字的高位放在內存的低地址端,低位放在內存的高地址端。
    舉一個例子,比如數字int a = 0x12 34 56 78在內存中的表示形式爲:
    1)大端模式:
    在這裏插入圖片描述
    2)小端模式:

在這裏插入圖片描述
大端模式和字符串的存儲模式有一拼

代碼實現

#include<stdio.h>
#include<stdlib.h>


int main()
{
	int a = 0x12345678;
	printf("%#X\n", *((char *)&a));
	if (*((char *)&a) == 0x78) {
		printf("little end\n");
	}
	else {
		printf("Big end\n");
	}
	return 0;
}

運行結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章