gpt4 book ai didi

c - 按位或不起作用 C

转载 作者:行者123 更新时间:2023-11-30 21:47:19 26 4
gpt4 key购买 nike

请帮我解决这个代码。我不知道为什么输出不是8。

#include <stdio.h>
#include <stdlib.h>
int main(){
char c;
c = c & 0;
printf("The value of c is %d", (int)c);
int j = 255;
c = (c | j);
int i =0;
while( (c & 1) == 1){
i++;
c = c>>1;
}
printf("the value of i is %d",i);
system("pause");
return 0;
}

对于所有给我-1的人,我尝试打印这些值。但它进入了无限循环。

最佳答案

正如您从 your previous question 学到的那样, char 已在您的平台上签名。因此,在 while 循环开始时,c 具有负值。

右移负值是实现定义的。在你的平台上,我想它正在做 arithmetic shift .

关于c - 按位或不起作用 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7215213/

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