Files
llgo/runtime/internal/clite/bitcast/_cast/cast.c

36 lines
418 B
C
Raw Normal View History

2025-04-08 16:50:47 +08:00
typedef union
{
double d;
2025-04-08 16:50:47 +08:00
float f;
long v;
long long ll;
} castUnion;
2025-04-08 16:50:47 +08:00
double llgoToFloat64(long long v)
{
castUnion k;
2025-04-08 16:50:47 +08:00
k.ll = v;
return k.d;
}
2025-04-08 16:50:47 +08:00
float llgoToFloat32(int v)
{
castUnion k;
k.v = v;
return k.f;
}
2024-12-12 16:29:17 +08:00
2025-04-08 16:50:47 +08:00
long long llgoFromFloat64(double v)
{
2024-12-12 16:29:17 +08:00
castUnion k;
k.d = v;
2025-04-08 16:50:47 +08:00
return k.ll;
2024-12-12 16:29:17 +08:00
}
2025-04-08 16:50:47 +08:00
int llgoFromFloat32(float v)
{
2024-12-12 16:29:17 +08:00
castUnion k;
k.f = v;
return k.v;
2025-02-03 19:16:30 +08:00
}