求一个简单c语言程序

求一个数据在内存中的储蓄方式。比如,inta=12345678,它在内存中是123456789还是78563412... 求一个数据在内存中的储蓄方式。比如,int a=12 34 56 78,它在内存中是123456789还是78 56 34 12 展开
 我来答
BrotherGao
2013-03-12 · TA获得超过1536个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:401万
展开全部

楼主你好!

我觉得你问的问题不正确!int a=12 34 56 78这里不应该是十进制的,应该是十六进制的才对!正确的是int a=0x12 34 56 78这样才对!

我可以明确的告诉,要知道它的存储方式得分为大端机和小端机两种!

小端机:整数逻辑上的最低字节放在内存的最低地址,次低字节放在内存的次低地址,依次存放,比如0x12 34 56 78(16进制数)放在内存中就是78 56 34 12。Intel的x86系列cpu就是小端机。

大端机:与小端机刚刚相反。比如,0x12 34 56 78放在内存中就是12 34 56 78。PowerPC、SUN的SPARC、摩托罗拉 6800是大端机。

 

下面是我用小端机电脑写的验证程序

#include<stdio.h>

int main(){

 int a = 0x12345678;

 char *p;

 p=(char *)&a;

 for(int i=0;i<sizeof(int);i++,p++)

 printf("%x ",*p);

 return 0;

}

 

希望我的回答对你有帮助!

帐号已注销
2013-03-12 · 超过20用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:59.9万
展开全部
好多这样的问题。就是判断大小端。
int a = 1;
int getBigOrLittle(int *arg)
{
char *pc = arg;
if(*pc == 1)
{
return 1;
}
else
{
return 0;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浪格里个格浪
2013-03-12 · TA获得超过4531个赞
知道小有建树答主
回答量:2920
采纳率:0%
帮助的人:1086万
展开全部
你这个定义就错了吧,又不是定义数组,怎么写成这样呢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式