s_fpclassify.c

来自「KPIT GNU Tools is a set of GNU developme」· C语言 代码 · 共 53 行

C
53
字号
/* Copyright (C) 2002 by  Red Hat, Incorporated. All rights reserved. * * Permission to use, copy, modify, and distribute this software * is freely granted, provided that this notice is preserved. */#include "fdlibm.h"int__fpclassifyf (float x){  __uint32_t w;  GET_FLOAT_WORD(w,x);    if (w == 0x00000000 || w == 0x80000000)    return FP_ZERO;  else if ((w >= 0x00800000 && w <= 0x7f7fffff) ||           (w >= 0x80800000 && w <= 0xff7fffff))    return FP_NORMAL;  else if ((w >= 0x00000001 && w <= 0x007fffff) ||           (w >= 0x80000001 && w <= 0x807fffff))    return FP_SUBNORMAL;  else if (w == 0x7f800000 || w == 0xff800000)    return FP_INFINITE;  else    return FP_NAN;}int__fpclassifyd (double x){  __uint32_t msw, lsw;  EXTRACT_WORDS(msw,lsw,x);  if ((msw == 0x00000000 && lsw == 0x00000000) ||      (msw == 0x80000000 && lsw == 0x00000000))    return FP_ZERO;  else if ((msw >= 0x00100000 && msw <= 0x7fefffff) ||           (msw >= 0x80100000 && msw <= 0xffefffff))    return FP_NORMAL;  else if ((msw >= 0x00000000 && msw <= 0x000fffff) ||           (msw >= 0x80000000 && msw <= 0x800fffff))    /* zero is already handled above */    return FP_SUBNORMAL;  else if ((msw == 0x7ff00000 && lsw == 0x00000000) ||           (msw == 0xfff00000 && lsw == 0x00000000))    return FP_INFINITE;  else    return FP_NAN;}

⌨️ 快捷键说明

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