C语言中1<<i表示将1的二进制每位想左移动i位,末位补0。左移运算符(<<)是C语言中的一种常见的运算符,一般用法可以通过下面的例子讲解来说明:如:1<<5 由于1的二进制为0000 0001,左移5位就是将每位向左移动5位,末位补0,所以1<<5后结果为0010 0000,转换为十进制就是32。
1<<i是把1左移i位,每次左移以为就是乘以2,所以1<<i的结果是1乘以2的i次方 i<<1就是把i左移一位,即i乘以2,假如i=5,最后结果就是5*2=10 至于为什么左移一位是乘以2,这是运算器内部机理,说起来就更多了,计算机做乘法运算的时候不是一个个的相加,而是用移位来实现的。>>这个符号...
这个算法中,i可以是整型数,也可以是char型,其实就是i对应的ascii的十进制数加上1。
c语言中,i+=1就是i=i+1。i+=1是i=i+1的缩写。它们表示的意思都是相同的,并且在运行时的结果也是相同的,c语言中类似这样的缩写还有a+=b →a=a+b 、a-=b →a=a-b 、a*=b →a=a*b 、a/=b →a=a/b 5、a%=b →a=a MOD b ,即a/b的余数。
i=1,只是赋初值,只赋值一次的。若n=100; i=1; while(i<=n) i=i*3;则循环退出后,i 的值是 243;i 的值的变化过程为:3,9,27,81,243。
相当于i=i+1 是先执行i的自加运算再把i的值赋予n
在C语言中,i+=1的原型就是i=i+1,所以i+=1相当于就是i=i+1的简写。不管C语言结构、算法是否复杂基本上都能看到这样的简写,但是否要简写还是看个人的习惯。
include <iostream>using namespace std;int main(){ double sum=0; int n; for (int i=1;i<=n;i++) sum+=1.0/i; cout<<sum<<'\n'; return 0;}
i是代表几,例如是1的话。那就是运行第一行代码。case1;如果是2的话,case:2其他的都一样。
int i = 1; i = i << 2; //把i里的值左移2位 也就是说,1的2进制是000...0001(这里1前面0的个数和int的位数有关,32位机器,gcc里有31个0),左移2位之后变成 000...0100,也就是10进制的4,所以说左移1位相当于乘以2,那么左移n位就是乘以2的n次方了(有符号数不完全适用,因为左移有可能导...