copysign.c
来自「基于4个mips核的noc设计」· C语言 代码 · 共 141 行
C
141 行
#include <ansidecl.h>#ifdef __IEEE_BIG_ENDIANtypedef union { double value; struct { unsigned int sign : 1; unsigned int exponent: 11; unsigned int fraction0:4; unsigned int fraction1:16; unsigned int fraction2:16; unsigned int fraction3:16; } number; struct { unsigned int sign : 1; unsigned int exponent: 11; unsigned int quiet:1; unsigned int function0:3; unsigned int function1:16; unsigned int function2:16; unsigned int function3:16; } nan; struct { unsigned long msw; unsigned long lsw; } parts; long aslong[2];} __ieee_double_shape_type;#endif#ifdef __IEEE_LITTLE_ENDIANtypedef union { double value; struct {#ifdef __SMALL_BITFIELDS unsigned int fraction3:16; unsigned int fraction2:16; unsigned int fraction1:16; unsigned int fraction0: 4;#else unsigned int fraction1:32; unsigned int fraction0:20;#endif unsigned int exponent :11; unsigned int sign : 1; } number; struct {#ifdef __SMALL_BITFIELDS unsigned int function3:16; unsigned int function2:16; unsigned int function1:16; unsigned int function0:3;#else unsigned int function1:32; unsigned int function0:19;#endif unsigned int quiet:1; unsigned int exponent: 11; unsigned int sign : 1; } nan; struct { unsigned long lsw; unsigned long msw; } parts; long aslong[2];} __ieee_double_shape_type;#endif#ifdef __IEEE_BIG_ENDIANtypedef union{ float value; struct { unsigned int sign : 1; unsigned int exponent: 8; unsigned int fraction0: 7; unsigned int fraction1: 16; } number; struct { unsigned int sign:1; unsigned int exponent:8; unsigned int quiet:1; unsigned int function0:6; unsigned int function1:16; } nan; long p1; } __ieee_float_shape_type;#endif#ifdef __IEEE_LITTLE_ENDIANtypedef union{ float value; struct { unsigned int fraction0: 7; unsigned int fraction1: 16; unsigned int exponent: 8; unsigned int sign : 1; } number; struct { unsigned int function1:16; unsigned int function0:6; unsigned int quiet:1; unsigned int exponent:8; unsigned int sign:1; } nan; long p1; } __ieee_float_shape_type;#endifdouble DEFUN(copysign, (x, y), double x AND double y){ __ieee_double_shape_type a,b; b.value = y; a.value = x; a.number.sign =b.number.sign; return a.value;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?