gpt4 book ai didi

c - 为什么这个按位运算返回 30 而不是 384?

转载 作者:太空狗 更新时间:2023-10-29 15:19:44 24 4
gpt4 key购买 nike

我正在使用 Dev-C++ 编译器。该程序应该打印 30 但它打印 384

#include <stdio.h>

int main() {
int n = 3;
int ans;

ans = n<<3 + n<<1;
printf("%d", ans);

getch();
return 0;
}

最佳答案

问题是 +运算符的优先级高于 <<运算符(operator)。你写的实际上是什么意思:

ans = n << (3 + n) << 1;

你真正想要的是:

ans = (n<<3) + (n<<1);

关于c - 为什么这个按位运算返回 30 而不是 384?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24245549/

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