⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fixlog.cpp

📁 这是我本人编写的一个32位定点小数运算的函数库。对于没有浮点运算器的场合
💻 CPP
字号:
// FixLog.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>

//long FixLog32(long x,int e);
extern "C" long FixLog32(long x,int e);
extern "C" long FixLog32_C(long x,long e);

int main(int argc, char* argv[])
{
	double sum=0,max=0;

	for (int i=0;i<10000;i++) {
		int e=rand()*30/RAND_MAX+1;
		int x1=rand(),x2=rand(),x=(x1<<16)+x2;
		double fx=(double)x/(1<<e);

		long y=FixLog32_C(x,e);
		//long y=FixLog32(x,e);
		double fy=log(fx),d=fabs(fy-(double)y/(double)0x4000000);
		if (d>max) max=d;
		if (d>2)
			printf("%d(%d)\t%lf\n",x,e,d);

		sum+=d;
	}

	printf("Max_Delta=%lf\tAver_Delta=%lf\n",max,sum/10000);
	getch(); return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -