嗨,我对Codewars网站的一项练习有疑问。我的工作是从双精度值中提取指数作为无符号数。但是我不允许使用任何算术和二进制运算,也不能包含任何额外的文件。因此,我不能使用字符:+-* /%&| ^〜#?。我认为解决此问题的唯一方法是使用函数。你能给我一些建议如何做这个任务吗int exponent(double d){ int result; frexp(d,&result); return result;} 最佳答案 注意:我尚未测试以下内容,因此可能需要一些“调整”#include <math.h>#include <stdint.h>typedef union{ double f; struct { uint64_t mantisa : 52; uint64_t exponent : 11; uint64_t sign : 1; } parts;} double_cast;uint64_t normalizedExponent(double d){ double_cast mydouble.f = d; return ( mydouble.parts.sign )? mydouble.parts.exponent << 1: mydouble.parts.exponent;}关于c - 从double中提取指数作为无符号值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56611166/
10-11 07:29