C语言输入分贝(dB)计算电压(V/mV)

公式:

结果计算结果计算
1mv = -60dB20lg10^{-3} = -60dB1mV = 0dBm20lg1 = 0dBm
10mV = -40dB20lg10^{-2} = -40dB10mV = 20dBm20lg10^{1} = 20dBm
100mV = -20dB20lg10^{-1} = -20dB100mV = 40dBm20lg10^{2} = 40dBm
1000mV = 0dB20lg1 = 0dB1000mV = 60dBm20lg10^{3} = 60dBm

注:dBm与dB不是简单地移动三位小数点

结果与在线计算器对比:

在线计算器计算结果

(链接:分贝在线计算器 - 在线计算网 (zaixianjisuan.com))

程序运行结果

程序:

dB

#include <stdio.h>
#include <math.h>
//https://blog.csdn.net/qq_32752869/article/details/79864748
int main() {
    double base = 10; // 设置底数为10
    double exponent = -100; // 设置指数为3

	while(1)
	{
		printf("输入dB:");
		scanf("%lf",&exponent);
		printf("%lfdB:",exponent);
		exponent = exponent/20.0;
		printf("结果为:%lf V 或 %lf mV\n", pow(base, exponent),1000*pow(base, exponent)); // 使用printf函数打印pow的返回值
	} 
    return 0;
}

dBm

#include <stdio.h>
#include <math.h>

int main() {
    double base = 10; // 设置底数为10
    double exponent = -100; // 设置指数为3

	while(1)
	{
		printf("输入dBm:");
		scanf("%lf",&exponent);
		printf("%lfdBm:",exponent);
		exponent = exponent/20.0;
		printf("结果为:%lf mV 或 %lf V\n", pow(base, exponent),pow(base, exponent)/1000); // 使用printf函数打印pow的返回值
	} 

	
	scanf("%lf",&exponent);
    return 0;
}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值