讨论课一:数据的存储方式

选题一

见相关资料浮点数的二进制表示

 选题三

问题

printf("%s\n",c)对应输出"eUNH"呢?

解答

先说一下打印字符串的方法:以c为首地址,依次打印每一个字节,遇到ASCII码为0的字节停止(即遇到字符串终止符'\0')。

我们知道c数组的第一个int,占4个字节,每个字节的ASCII码分别为72('H')、78('N')、85('U')、101('e');第二个int每个字节的ASCII码分别为114('r')、0('\0')、0('\0')、0('\0')。

先说结论,我们的机器是“小端”,即小地址保存的是低位。

所以,这2个int(8个字节)的排列为'e'  'U'  'N'  'H'  '\0'  '\0'  '\0'  'r',打印的结果也就不言而喻了。

选题五

问题:如何编程判断机器是“大端”还是“小端”?

扫描二维码关注公众号,回复: 9055599 查看本文章

解答:以下函数,返回1则为小端

int checkSystem(void)
{
	int i = 0x12345678;
	char *c = &i;
	return ((c[0] == 0x78) && (c[1] == 0x56) && (c[2] == 0x34) && (c[3] == 0x12));
}
发布了91 篇原创文章 · 获赞 142 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/leelitian3/article/details/88087315