C语言 判断大端小端,怎么判断

inta=0x12345678;charb;b=(char)a;if(b==0x78)print"小端"elseprint"大端"这样行吗?... int a = 0x12345678;
char b ;
b = (char)a;
if (b == 0x78)
print"小端"
else print"大端" 这样行吗?
展开
 我来答
renjianke
2011-06-02 · TA获得超过2932个赞
知道小有建树答主
回答量:580
采纳率:0%
帮助的人:664万
展开全部
#include<stdio.h>
int check()
{
union check
{
int i;
char ch;
}c;
c.i =1;
return (c.ch == 1);
}
int main()
{
int ret;
ret = check();
if(ret == 0)
{
printf("Big\n");
}
else
{
printf("little\n");
}
return 0;
}

联合体中 变量i 和ch共用同一地址空间,它们都是从低地址开始存放。变量i的值为0x00 00 00 01, 如果是小端模式则01在低地址上,ch的值如果为01则是小端模式,否则是大端模式。
White_MouseYBZ
推荐于2017-09-06 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6773万
展开全部

计算机的一个int型数据是用多个字节表示的,如果在内存中存放时标称该数据的地址中存放的是数据的最低字节,就叫小端机,反之把高字节存放在标称地址中的则称为大端机。所以可以定义一个int变量,将其地址强制为char *型地址,检测该地址中的数据若是int变量的最低字节,则是小端机,反之则为大端机。代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    int n=1;
    printf(*(char *)&n ? "小端\n" : "大端\n");
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c02cb67
2013-03-29
知道答主
回答量:1
采纳率:0%
帮助的人:1527
展开全部
小端
地址从低到高 0x78 0x56 0x34 0x12

大端
地址从低到高 0x56 0x78 0x 12 0x34
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
864680106
2011-06-02 · TA获得超过191个赞
知道小有建树答主
回答量:280
采纳率:0%
帮助的人:93万
展开全部
可以
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式