C語言判斷大小端的兩種方法
更新時間:2024年02月12日 10:30:10 作者:fiance111
大小端的問題在很多面試筆試中都會遇到,本文主要介紹了C語言判斷大小端的兩種方法,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
首先,什么是大小端存儲方式?
- 大端(存儲)模式,是指數據的低位保存在內存的高地址中,而數據的高位,保存在內存的低地址中;
- 小端(存儲)模式,是指數據的低位保存在內存的低地址中,而數據的高位,,保存在內存的高地址中。
方法一:使用強制類型轉換
int is_byteorder(int* p)
{
return *(char*)p;//強制類型轉換,將精度跳得更高一點
}
int main()
{
int n = 1;
int ret = is_byteorder(&n);
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
方法二:利用聯(lián)合體數據存儲的特點
聯(lián)合體里面的數據會共用同一塊內存,改變其中一個數據的值,其他數據的值可能也會隨之變化
int is_byteorder(int* p)
{
union un { //定義一個聯(lián)合體類型
int i;
char c;
}u;
u.i = 1;//修改i的值,c的值也會隨之發(fā)生變化
return u.c;
}
int main()
{
int n = 2;
int ret = is_byteorder(&n);
if (ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
如果將 i 改為1,如果是小端存儲,就會將01存儲到 c 中,就會返回1
到此這篇關于C語言判斷大小端的兩種方法的文章就介紹到這了,更多相關C語言判斷大小端內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解_beginthreadex()創(chuàng)建線程
這篇文章主要介紹了詳解_beginthreadex()創(chuàng)建線程,使用_beginthreadex(),需要的頭文件支持#include <process.h> 下面我們就來看看具體的實現吧2022-01-01

