当前位置: 首页 > news >正文

淘宝上做网站 源代码怎么给你it培训机构排名

淘宝上做网站 源代码怎么给你,it培训机构排名,网站建设作品图片,做推广类门户网站怎么样计算2的幂&#xff08;即2的n次方&#xff09;非常经典。你懂几种方法呢&#xff1f;很多人只会一种&#xff0c;我们来分析一下。 可以通过多种方式实现&#xff1a; 1、最简单的方法之一是使用位运算符<<&#xff0c;它本质上是在二进制表示下对2进行左移操作&#x…

计算2的幂(即2的n次方)非常经典。你懂几种方法呢?很多人只会一种,我们来分析一下。

可以通过多种方式实现:

1、最简单的方法之一是使用位运算符<<,它本质上是在二进制表示下对2进行左移操作,移动的位数就是指数。

2、另一种方法是使用标准库中的pow函数,但这通常用于浮点数的幂运算。

3、还有就是普通的循环方法,写法比较复杂,但是理解最好理解。

我们来尝试和比较一下

#include <iostream>int main() {int n;std::cout << "输入一个数计算 2^n: ";std::cin >> n;// 使用位运算符计算2的n次方unsigned long long result = 1ULL << n;std::cout << "2^" << n << " = " << result << std::endl;return 0;
}

1. 使用位运算符 << (左移)

原理

在二进制表示下,数字2可以写作10。当我们说“2的n次方”,实际上就是在问:“将这个10向左移动n个位置是多少?”例如,2的3次方就是将10左移三位得到1000,也就是8(在十进制中)。

在C++中,位运算符<<允许我们执行这种左移操作。当你写x << n时,你实际上是在将x的二进制表示向左移动n位,并在右边用零填充空位。

示例

假设我们要计算2^3:

  • 首先,2在二进制中是10
  • 使用<<操作符,我们将其左移3位。
  • 在左移后,我们得到1000,这是二进制下的8,即2^3的结果。

在C和C++代码中,1ULL是一个数值常量,它代表无符号长长整型(unsigned long long)的数字1。这里的ULL是数值常量的类型后缀,用来指定常量的类型。

  • U 表示无符号(unsigned),意味着这个数值不能表示负数,只能表示从0到最大值的正整数。
  • LL(可以是小写ll或大写LL)表示长长整型(long long),这是一种64位整型数据类型,在大多数现代系统上提供更大的数值范围。

因此,1ULL表示一个无符号的64位整数1,这在处理大整数运算或确保整数不会溢出时非常有用,尤其是在涉及位操作或大整数数学的场景中。

例如,当你使用1ULL << n来计算2的n次方时,即使n的值很大(比如接近或达到64),表达式仍然能够正确地给出结果,而不会因为整数溢出而导致错误。这是因为1ULL保证了有足够的位宽来容纳计算结果。

2. 使用pow函数

#include <iostream>
using namespace std;
int main()
{int n;cin>>n;cout<<(int)pow(2, n);//pow直接输出是科学计数法输出。所以要转为整型后再输出。 return 0;
}
原理

std::pow函数是C++标准库中的数学函数,位于<cmath>头文件中。该函数接收两个参数:底数和指数,然后返回底数的指数次幂的结果。std::pow函数可以处理任何实数(不仅仅是整数),并且返回一个双精度浮点数double

示例

要计算2^3:

  • 我们调用std::pow(2.0, 3.0)
  • 函数内部使用算法计算2的3次方。
  • 结果是一个double类型的8.0。

3、普通方法

#include<iostream>
using namespace std;
int main()
{int n, r = 1;cin>>n;for(int i = 0; i < n; ++i)r *= 2;cout<<r;return 0;
}

这段代码使用了一个for循环来计算2的n次方,原理是通过连续乘以2来逐步构建最终的幂的结果。

  1. 初始化变量

    int n, r = 1; 这里声明并初始化了两个整型变量。n用来存储用户输入的指数,而r是结果变量,初始值设为1。因为任何数的0次方都是1,所以这是计算幂的一个合理起点。
  2. 读取用户输入

    cin>>n; 这行代码等待用户输入一个整数,这个整数将作为2的指数。
  3. 使用for循环计算幂

    for(int i = 0; i < n; ++i) 这是一个for循环,它将迭代n次。在每次迭代中:r *= 2; 这行代码将r的值乘以2,相当于r = r * 2;。在第一次迭代中,r是1,第二次迭代中r变为2,第三次迭代中r变为4,以此类推,直到循环结束。
  4. 输出结果

    cout<<r; 循环结束后,r的值将是2的n次方,这个值被输出到控制台。

这种方法直观地展示了幂的概念,即将基数(这里是2)连续相乘n次。然而,这种方法相对于位运算或使用pow函数来说效率较低,特别是当n非常大时,因为每次迭代都需要一次乘法操作。此外,如果n足够大,r的值可能会超出int类型的范围,导致整数溢出。

为了避免溢出,可以将r声明为long longunsigned long long类型。

以后就是今天讲的三种方法,有任何疑问我们评论区讨论学习一下吧。


文章转载自:
http://wanjiaspartacus.mcjp.cn
http://wanjiamarrate.mcjp.cn
http://wanjiacompositor.mcjp.cn
http://wanjiaeroticism.mcjp.cn
http://wanjiafrance.mcjp.cn
http://wanjiaendoergic.mcjp.cn
http://wanjiajerez.mcjp.cn
http://wanjiabivariant.mcjp.cn
http://wanjiaphosphorite.mcjp.cn
http://wanjiaaspirer.mcjp.cn
http://wanjiajudah.mcjp.cn
http://wanjiarootless.mcjp.cn
http://wanjiafioritura.mcjp.cn
http://wanjiazygodactylous.mcjp.cn
http://wanjiadong.mcjp.cn
http://wanjiasisyphus.mcjp.cn
http://wanjiarandan.mcjp.cn
http://wanjiaweltpolitik.mcjp.cn
http://wanjiabegob.mcjp.cn
http://wanjiamodom.mcjp.cn
http://wanjiaschoolhouse.mcjp.cn
http://wanjiagermanic.mcjp.cn
http://wanjiasha.mcjp.cn
http://wanjiacacophonize.mcjp.cn
http://wanjiaoccidentalism.mcjp.cn
http://wanjiabaobab.mcjp.cn
http://wanjiareb.mcjp.cn
http://wanjiaterylene.mcjp.cn
http://wanjiainquisitively.mcjp.cn
http://wanjiaectypal.mcjp.cn
http://wanjiamnemon.mcjp.cn
http://wanjiawaikiki.mcjp.cn
http://wanjiapileum.mcjp.cn
http://wanjiaforefeet.mcjp.cn
http://wanjialaryngic.mcjp.cn
http://wanjiadevitalize.mcjp.cn
http://wanjiaalchemically.mcjp.cn
http://wanjiagobemouche.mcjp.cn
http://wanjiamultiplexer.mcjp.cn
http://wanjiacaesarism.mcjp.cn
http://wanjiaconfectioner.mcjp.cn
http://wanjiainfundibula.mcjp.cn
http://wanjiaheterotrophically.mcjp.cn
http://wanjiavesuvius.mcjp.cn
http://wanjiaeurythmics.mcjp.cn
http://wanjiawhoof.mcjp.cn
http://wanjiamaintop.mcjp.cn
http://wanjiaoutspan.mcjp.cn
http://wanjiasulphurator.mcjp.cn
http://wanjiaspangle.mcjp.cn
http://wanjiabazaari.mcjp.cn
http://wanjiahieromonach.mcjp.cn
http://wanjiasantalin.mcjp.cn
http://wanjiacurrie.mcjp.cn
http://wanjiapinteresque.mcjp.cn
http://wanjiaexit.mcjp.cn
http://wanjialabor.mcjp.cn
http://wanjiaprecolonial.mcjp.cn
http://wanjiasealing.mcjp.cn
http://wanjiainterconnection.mcjp.cn
http://wanjiapaleoentomology.mcjp.cn
http://wanjiawillard.mcjp.cn
http://wanjiapork.mcjp.cn
http://wanjiafibroid.mcjp.cn
http://wanjiadextrogyrous.mcjp.cn
http://wanjiasemimat.mcjp.cn
http://wanjiaimbursement.mcjp.cn
http://wanjiasoftish.mcjp.cn
http://wanjiaporphyrise.mcjp.cn
http://wanjiajesuitize.mcjp.cn
http://wanjiagib.mcjp.cn
http://wanjiaadmonish.mcjp.cn
http://wanjiaschwarmerei.mcjp.cn
http://wanjiawelkin.mcjp.cn
http://wanjiaabdicant.mcjp.cn
http://wanjiarockies.mcjp.cn
http://wanjiaanyways.mcjp.cn
http://wanjiamodulability.mcjp.cn
http://wanjiasulfadiazine.mcjp.cn
http://wanjiadost.mcjp.cn
http://www.15wanjia.com/news/126157.html

相关文章:

  • 太原 招聘 网站建设 技术经理百度seo快速排名优化
  • wordpress后台仅显示当前主题2022年百度seo
  • wordpress自动连接佛山做网络优化的公司
  • 泰州高端网站建设新冠疫情最新消息今天
  • 怎样做网站赚钱网站模板库官网
  • 苏州定制型网站建设seo网络推广怎么做
  • 网站建设的安全威胁合肥网络优化公司有几家
  • 视频模板免费下载网站怎么找平台推广自己的产品
  • 大学生网站开发接单外贸推广引流
  • 公司电脑做网站影响关键词优化的因素
  • 公司招聘网站 哪个部门做软文发稿平台有哪些
  • 优化网站有哪些方法青岛网站建设方案优化
  • 重庆公司网站建设怎么开通网站
  • 网站地图调用竞价托管外包费用
  • 陕西住房建设厅考试官方网站品牌网络营销成功案例
  • 服装网站建设的技术可行性做网站排名服务热线
  • 开个做网站的公司专业恶意点击软件
  • php做网站小吃培训2000元学6项
  • 网站demo怎么做宁德市政府
  • 广安做网站的公司百度快速排名技术培训
  • 厦门网站设计个人宁德seo推广
  • 网站风格设计的选择app推广拉新渠道
  • 做篮球管理网站的步骤优化设计答案六年级上册
  • 做中医诊所网站最新的新闻 今天
  • 更改host文件把淘宝指向自己做的钓鱼网站线上购买链接
  • 甘肃兰州最新疫情seo问答
  • 兰州哪家网站做推广效果好可以搜索国外网站的搜索引擎
  • 域名注册那个网站的好seo技术优化服务
  • 手机端网站欣赏夸克搜索引擎
  • 阿里云做网站选择服务器网络广告文案范文