1.判断分析自己的机器采用的是大端/小端方式
首先理解一下大端和小端的概念
大端是指低字节放在高地址,高字节放在低地址
小端是指高字节放在高地址,低字节放在低地址
实现的方式是构建一个联合体,选取不同长度的两个数据成员。给长的赋值,然后看短的数据成员的值是长的数据成员的高字节还是低字节。
#include<stdio.h>
int main()
{
union num{
int x;
char y;
}num;
num.x = 0x12345678;
printf("%X\n",num.x);
printf("%X\n",num.y);
if(num.y == 0x12)
printf("Big");
else
printf("Little");
return 0;
}
运行结果
12345678
78
Little
2.浮点数机器数查看与分析
1)将浮点数转换成IEEE754机器数
#include<stdio.h>
int main()
{
union num{
int x;
float y;
}num;
num.y = -1.75;
printf("机器数\t%X\n",num.x);
printf("真值\t%.2f\n",num.y);
return 0;
}
运行结果
机器数BFE00000
真值-1.75
2)给定机器数求其真值
num.x = 0xBFE00000;
printf("机器数%X\n",num.x);
printf("真值%.2f\n",num.y);
运行结果
机器数BFE00000
真值-1.75
3)检查一些特殊表达式的运行结果如非零实数除以0
float f1 = 0;
float f2 = 3.4;
num.y = f2 / f1;
运行结果
机器数7F800000
真值1.#INF00