⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findbadnum.c

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 C
字号:
#include <stdio.h>main () {  float x, y;  char c[50];  int i=0;  struct float_format {#ifdef FREEBSD    unsigned int mant : 23;    unsigned int exp : 8;    unsigned int sign : 1;#else    unsigned int sign : 1;    unsigned int exp : 8;    unsigned int mant : 23;#endif  };  union readable_float {    float f;    struct float_format s;    unsigned char c[ sizeof( float ) ];  } z;/*  printf( "struct = %d, float = %d, union = %d\n",	  sizeof( struct float_format ), sizeof( float ),	  sizeof( union readable_float ) );  z.f = 25.0;  printf( "z=%f, %u %u %u | %u %u %u %u\n", z.f, z.s.sign, z.s.exp, z.s.mant,	  (int)((unsigned char *)&z)[0],	  (int)((unsigned char *)&z)[1],	  (int)((unsigned char *)&z)[2],	  (int)((unsigned char *)&z)[3] );  z.f = -25.0;  printf( "z=%f, %u %u %u | %u %u %u %u\n", z.f, z.s.sign, z.s.exp, z.s.mant,	  (int)((unsigned char *)&z)[0],	  (int)((unsigned char *)&z)[1],	  (int)((unsigned char *)&z)[2],	  (int)((unsigned char *)&z)[3] );  z.s.exp = 132;  printf( "z=%f, %u %u %u | %u %u %u %u\n", z.f, z.s.sign, z.s.exp, z.s.mant,	  (int)((unsigned char *)&z)[0],	  (int)((unsigned char *)&z)[1],	  (int)((unsigned char *)&z)[2],	  (int)((unsigned char *)&z)[3] );  z.c[0] = 0x01;  z.c[1] = 0x00;  z.c[2] = 0x80;  z.c[3] = 0x7f;  printf( "z=%f, %u %u %u | %u %u %u %u\n", z.f, z.s.sign, z.s.exp, z.s.mant,	  (int)((unsigned char *)&z)[0],	  (int)((unsigned char *)&z)[1],	  (int)((unsigned char *)&z)[2],	  (int)((unsigned char *)&z)[3] );*/  while (fread( &z, sizeof( float ), 1, stdin)) {    if (z.s.exp == 255 && z.s.mant!=0) {      fprintf( stderr,  "%d doesn't look like a number (%u %u %u).\n", i,	       z.s.sign, z.s.exp, z.s.mant);      z.s.mant = 0;    } else {      /* fprintf( stderr, "(%u %u) ", z.s.exp, z.s.mant ); */    }    fwrite( &z, sizeof( float ), 1, stdout );    i++;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -