gpt4 book ai didi

c - C语言中i=1<
转载 作者:行者123 更新时间:2023-11-30 20:48:33 28 4
gpt4 key购买 nike

我有这个源代码:

void main() {
int a[10]={9, 8, 7, 6, 5, 4, 3, 2, 1, 0}; int i;
for (i=0; i<10; i=1<<i) a[9-i]=a[i];
for (i=1; i<10; i++) a[0]+=a[i];
printf("%d", a[0]);
}

由于我是 C 编程新手,所以我不太明白它的作用。 i=1<<i 是什么意思?在 for 循环中意味着什么?

最佳答案

1<<i是按位左移运算符。如果您将 1 视为 00001,则表示将 1 左移 i次。循环将结果反馈给自身。

  • 1<<0是 00001 或 1。
  • 1<<1是 00010 或 2。
  • 1<<2是 00100 或 4。
  • 1<<4是 10000 或 16。

它从 0 开始,到 4 停止,因为 16 大于 10。

您可以通过执行相同的循环并打印 i 来查看其实际效果。 .

#include <stdio.h>

int main() {
for (int i=0; i<10; i=1<<i) {
printf("%d\n", i);
}

return 0;
}

我不确定你为什么要这样做。

关于c - C语言中i=1<<i是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37356886/

28 4 0

Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com