读书人

C#里面有没有类似C里的函数frexp()分

发布时间: 2012-04-27 11:57:44 作者: rapoo

C#里面有没有类似C里的函数frexp(),分解浮点数函数?
请问C#里面有没有frexp()函数呢,我需要将浮点数var分解为数字部分(尾数部分)x和以2为底的指数部分n,即val=x*2n。怎么来实现呢?

[解决办法]
BitConverter.GetBytes(float)

然后根据标准,移位获得符号、尾数和指数
[解决办法]
楼上正解,还有一个偏方法,就是将浮点数转换为字符串再进行处理,之后转换回来
[解决办法]
MSDN里面说了,.net里没有等价的函数,直接PInvoke吧,为啥非得用C#
[解决办法]
C# 没有这个等价函数,处理也比较麻烦,还是P\Invoke合适:

C# code
 class Program    {        [DllImport("msvcrt.dll")]        public static extern double frexp(double val, out int eptr);        static void Main(string[] args)        {            int eptr;            double d = frexp(16.400000, out eptr);            Console.WriteLine(eptr + "   " + d);        }    }/*输出结果:5   0.5125请按任意键继续. . .*/
[解决办法]
探讨

引用:

C# 没有这个等价函数,处理也比较麻烦,还是P\Invoke合适:

C# code
class Program
{
[DllImport("msvcrt.dll")]
public static extern double frexp(double val, out int eptr);
static void Main(stri……


请……

读书人网 >C#

热点推荐