浮点值转4字节16进制

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 00:17   21   0

在此介绍两种方法实现,第一种通过地址操作实现,但为了方便理解特意又用联合体实现了下,以便加深理解。(注:都是小端环境下实现的

方法一:

int main(int argc, char * argv[])
{
 float fValue;

 printf_s("Please enter a float value:");
 scanf("%f",&fValue);

 while (fValue)   //输入0的时候退出
 {
  unsigned char *cValue = (unsigned char *)&fValue;
  printf_s("%x %x %x %x\n",cValue[0],cValue[1],cValue[2],cValue[3]);

  printf_s("Please enter a float value:");
  scanf("%f",&fValue);
 }

 return 0;
}


方法二:

int main(int argc, char * argv[])
{
 union{
  float fValue;
  unsigned char c[sizeof(float)];
 } un;

 if (4 == sizeof(float))
 {
  printf_s("Please enter a float value:");
  scanf("%f",&(un.fValue));

  while (un.fValue)  //输入0的时候退出
  {
   printf_s("%x %x %x %x\n",un.c[0],un.c[1],un.c[2],un.c[3]);

   printf_s("Please enter a float value:");
   scanf("%f",&(un.fValue));
  }
 }
 else
  printf_s("sizeof(float): %d\n",sizeof(float));

 return 0;
}



分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP