`
Arizona
  • 浏览: 32163 次
  • 性别: Icon_minigender_2
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

log的c实现

阅读更多
#include <stdio.h> 
const int N=100; 

double coef(int n) 
{ 
if(n==0) return 0; 
double t=1.0/n; 
if(n%2==0) t=-t; 
return t; 
}//x^n的系数 
double horner(double x) 
{ 
double u=coef(N); 
for(int i=N-1;i>=0;i--) 
u=u*x+coef(i); 
return u; 
} 
double sqrt(double b) 
{ 
double x=1;int step=0; 
while((x*x-b<-0.000000000000001||x*x-b>0.000000000000001)&&step<50) 
{x=(b/x+x)/2.0;step++;} 
return x; 
}//开平方 

double ln(double x)//ln(1+x)=x-x^2/2+x^3/3-x^4/4…… 
{ 
if(x>1.5) 
{ 
for(int i=0;x>1.25;i++) 
x=sqrt(x); 
return (1<<i)*horner(x-1); 
} 
else if(x<0.7&&x>0) 
{ 
for(int i=0;x<0.7;i++) 
x=sqrt(x); 
return (1<<i)*horner(x-1); 
} 
else if(x>0) 
return horner(x-1); 
} 
double log(double m,double base=10) 
{ 
return ln(m)/ln(base);//换底公式 
} 
double exp(double x) 
{ 
double sum=1; 
for(int i=N;i>0;i--) 
{ 
sum/=i; 
sum*=x; 
sum+=1; 
} 
return sum; 

}//e^x≈1+x+x^2/2!+x^3/3!+……+x^n/n! 

double pow(double m,double n) 
{ 
return exp(n*ln(m)); 
} 

main() 
{ 
printf("100^2.5=");printf("%f\n",pow(100,2.5)); 
printf("lg(1000)=");printf("%f\n",log(1000)); 
} 

 

分享到:
评论

相关推荐

    c_cPP_log.rar_log c实现

    本文将深入探讨如何使用C++语言来实现一个基本的日志模块,展示日志的显示和保存功能。 首先,我们需要理解日志的基本概念。日志是程序运行过程中的事件记录,通常包括时间戳、事件级别(如信息、警告、错误)以及...

    log4cplus日志封装log

    **log4cplus日志封装log** 在软件开发过程中,日志记录是一项至关重要的任务,它可以帮助开发者追踪程序运行状态,定位错误,以及进行性能分析。`log4cplus`是一个专门为C++设计的开源日志系统,它提供了一种高效、...

    log4cplus 源码(C++编写的开源的日志系统)

    需要指出的是,输出信息中总是包含"log4cplus:"前缀,有时候会感觉不爽,这是因为LogLog在实现时候死定了要这么写: LogLog::LogLog() : mutex(LOG4CPLUS_MUTEX_CREATE), debugEnabled(false), quietMode(false)...

    使用log4cplus实现的分目录存放日志服务器完整工程

    **使用log4cplus实现的分目录存放日志服务器完整工程** 在IT行业中,日志管理是系统监控、故障排查和性能分析的关键部分。`log4cplus`是一个开源的日志记录库,它为C++程序员提供了类似Java的log4j功能。这个项目的...

    logc.rar_C C 日志_C语言日志记录_Linux日志_logc语言_日志系统

    本文将围绕“logc.rar”这个C语言实现的日志记录库进行深入探讨。 标题中的“logc.rar”指的是一个压缩包文件,其中包含了C语言编写的日志记录代码。C语言是一种基础且高效的编程语言,适用于编写底层系统软件,...

    基于log4cplus-1.2.0-rc5 版本自实现的一个appender(RollingAppender)

    本文将深入讲解基于log4cplus-1.2.0-rc5版本自实现的一个appender——RollingAppender,该appender结合了RollingFileAppender和TimeBasedRollingFileAppender的优点,实现了更加完善的日志转储机制。 首先,...

    log4cplus使用

    本文将深入探讨log4cplus的使用方法,以及如何通过它实现简单的模拟报警发送程序。 一、log4cplus简介 Log4cplus是基于Apache的log4j项目而设计的,它提供了类似于Java的log4j接口,便于C++程序员使用。该库支持...

    log4cpluslog4cLIB

    log4cplus是基于Apache的log4j项目的一个C++实现,它为C++程序员提供了一个强大的日志记录框架。log4cplus的设计理念是灵活、可配置且易于扩展,它的主要目标是帮助开发者创建易于维护和调试的代码,同时减少日志...

    log4cplus封装

    ### log4cplus封装知识点详解 #### 一、log4cplus简介 log4cplus是一种基于C++的日志框架,它提供了灵活且强大的日志记录功能,支持多种日志级别,可以方便地将日志信息输出到不同的目的地,如控制台、文件等。其...

    我个人的log4cplus-1.2.2的编译与测试使用,Win7+VS2013环境

    log4cplus是基于Apache的log4j和log4net项目的一个C++实现,提供了一套完整的日志系统,包括配置、日志级别控制、多种输出方式等功能。其核心理念是通过简单易用的API,实现跨平台的日志管理,提高开发效率。 在Win...

    log10X的快速算法及DSP实现

    传统的模拟仪器可以通过对数放大器简单实现log10X运算,而在数字化仪器中,这需要通过数字信号处理器(DSP)来完成。DSP实现log10X运算的直接调用效率较低,无法满足高速处理环境的需求,特别是定点DSP的运算效率远...

    log4cplus封装类

    《log4cplus封装类详解及其在项目中的应用》 在软件开发中,日志记录是不可或缺的一部分,它能够帮助开发者追踪程序运行状态,定位错误,优化性能。Log4cplus是一个广泛使用的C++日志记录库,它借鉴了Java的log4j...

    c语言实现 log.rar

    在本项目中,我们关注的是如何使用C语言来实现一个日志(log)功能,这是一项非常实用的技能,特别是在开发需要记录系统运行状态或调试问题的应用时。日志功能可以帮助开发者追踪程序的执行过程,定位错误,以及了解...

    log4cplus-2.0.5_win.zip

    Log4cplus是Apache Log4j的一个C++实现,它提供了一个简单而强大的接口来管理应用程序的日志输出。本文将详细介绍如何在Windows环境下使用log4cplus-2.0.5版本,并基于Visual Studio 2015进行编译和应用。 一、log4...

    log4cplus-1.1.1.zip

    log4cplus是源自Java世界的log4j的C++实现,旨在提供与log4j类似的接口和功能,便于C++程序员进行日志管理。这个开源库的核心理念是模块化、可配置和可扩展,允许开发者根据项目需求定制日志输出的方式和级别。 二...

    log4cplus包

    **log4cplus 包详解** `log4cplus` 是一个开源的日志记录库,设计用于C++程序,它的灵感来源于Java中的log4j。这个包提供了灵活且可扩展的日志记录功能,使得开发者能够方便地管理和控制应用程序的输出信息。在...

    log4cplus在VS2015编译

    ### log4cplus在VS2015中的编译与使用 #### 一、log4cplus简介 log4cplus是一款开源的日志框架,它为C++开发人员提供了...通过这种方式,开发者可以轻松地集成log4cplus到自己的项目中,实现高效稳定的日志记录功能。

    封装的log4cplus的日志库

    log4cplus是基于Apache log4j理念的一个C++日志库,它的设计目标是提供与log4j相似的功能,但针对C++语言进行了优化。log4cplus提供了灵活的日志级别,包括DEBUG、INFO、WARN、ERROR和FATAL,允许开发者控制不同级别...

Global site tag (gtag.js) - Google Analytics