求一个简单c语言程序
求一个数据在内存中的储蓄方式。比如,inta=12345678,它在内存中是123456789还是78563412...
求一个数据在内存中的储蓄方式。比如,int a=12 34 56 78,它在内存中是123456789还是78 56 34 12
展开
3个回答
展开全部
楼主你好!
我觉得你问的问题不正确!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;
}
希望我的回答对你有帮助!
展开全部
好多这样的问题。就是判断大小端。
int a = 1;
int getBigOrLittle(int *arg)
{
char *pc = arg;
if(*pc == 1)
{
return 1;
}
else
{
return 0;
}
}
int a = 1;
int getBigOrLittle(int *arg)
{
char *pc = arg;
if(*pc == 1)
{
return 1;
}
else
{
return 0;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这个定义就错了吧,又不是定义数组,怎么写成这样呢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询