The following should also be safe, this translates to a memcpy() at the C
level. This may seem like overkill, but the C compiler should recognize the use
of memcpy for type punning and optimize it away and generate a register to
register move.
proc flt2arr(f: var float64, a: var array[8, uint8]) =
assert sizeof(a) == sizeof(f)
copyMem(addr a[0], addr f, sizeof f)
proc arr2flt(a: var array[8, uint8], f: var float64) =
assert sizeof(a) == sizeof(f)
copyMem(addr f, addr a[0], sizeof f)
Run
- Convert float to its corresponding bytes? lqdev
- Re: Convert float to its corresponding bytes? e
- Re: Convert float to its corresponding bytes? lqdev
- Re: Convert float to its corresponding bytes? doofenstein
- Re: Convert float to its corresponding bytes? e
- Re: Convert float to its corresponding b... zevv
