如何用C语言实现2的n次方
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用C语言实现2的n次方相关的知识,希望对你有一定的参考价值。
参考技术A 以上各位都对,但有更简单的直接将1左移n位就好了,效率也更高
int n= 10;
unsigned int x = 1<<n;
但要注意直接计算2的n次方很容易溢出,比如直接左移以及直接乘都要求小于32次方,还得是x声明为unsigned的前提下,否则最多能左移16位,超过之后就溢出了
如果要实现超过32次方,需要定义为更大的数据类型,或者直接用字符数组存储,实现大整数的运算 参考技术B 主要for循环。
double power2(int n)//求2的n次方的函数,参数n是指数
double result;//结果变量
for(;n>0;n--)//统计n个2相乘
result *=2;
return result;
看来前两个的回答,个人感觉返回类型是double比较好,因为求幂的结果有可能会比较大。而int型的数,最大值才3万多,容易溢出。 参考技术C 这个可以用
int mi(int n)
int r = 1;
for(int i=1;i<=n;i++)
r *= 2;
return r;
void main()
int m;
printf("请输入n的值":);
mi(m);
printf("%d",m);
参考技术D 同意memberwin意见,用位移符号<,位移量大用窜存储。 第5个回答 2011-07-19 这个可以用
int power2(int n)
int r = 1;
for(int i=1;i<=n;i++)
r *= 2;
return r;
如何用c语言实现真值表
已通过测试,望采纳其余楼主可参照对应真值表补充
#include <stdio.h>
main()
int a=1,b=0;
printf("a=%d\tb=%d\n",a,b);
printf("a&&b=%d\n",a&b);
printf("a||b=%d\n",a||b);
printf("!a=%d\n",!a);
printf("a||(a&&b)=%d\n",a||(a&&b));
printf("a&&(a||b)=%d\n",a&&(a||b));
参考技术A 取一个数字的个位,可以分为取整数的个位,和浮点数的个位两种情况:
1)取一个整数的个位,可以直接求余
例如 变量 int num=127;
num%10 就可以得到个位的7
2)取浮点数的个位
因为%是不能对浮点数直接运算的,因此需要强制取整之后执行
例如变量 double num=27.83;
((int)num)%10 就可以得到个位的7
以上是关于如何用C语言实现2的n次方的主要内容,如果未能解决你的问题,请参考以下文章