1、测试代码
#include <stdio.h>
int main()
{
signed short a = 0;
float temp = 1.0;
unsigned char *ptemp;
/* 我的第一个 C 程序 */
a = (0xff<<8) | 0x37;
printf("a(dec)=%d.%d, a(hex)=%x! \n",a/10, a%10, a);
a = -201;
printf("a(dec)=%d.%d, a(hex)=%x! \n",a/10, a%10, a);
temp = a*0.1;
printf("temp(float)=%f,temp(hex)=%x, temp(dec) = %d! \n",temp,temp,temp);
ptemp = (unsigned char *)&temp;
printf("temp(char):%02x-%02x-%02x-%02x \n", ptemp[0], ptemp[1],ptemp[2],ptemp[3]);
return 0;
}
2、打印显示
a(dec)=-20.-1, a(hex)=ffffff37!
a(dec)=-20.-1, a(hex)=ffffff37!
temp(float)=-20.100000,temp(hex)=2021, temp(dec) = -1413826368!
temp(char):cd-cc-a0-c1
3、总结说明
对于一个有符号数据采用a=-201和a=0xff37这两种赋值方法是一样的。
对于一个浮点数要取其在内存中存储的值,需要使用一个char形的指针来指向浮点数,采用字节访问来读取其内存中存储的值。