gpt4 book ai didi

c - 将 char 设置为所有真位

转载 作者:行者123 更新时间:2023-12-05 01:23:04 25 4
gpt4 key购买 nike

我正在尝试将 char 中的所有位设置为 true。

char foo = 00000000;
foo |= 11111111;
for (int i = 0; i < 8; i++) { //prints out bitwise
printf("%d", !!((foo << i) & 0x80));
}

当 foo 全部为 0 时,我得到 11000111。当 foo == 00000110 时,打印 11001111;这里出了什么问题?

最佳答案

数字 11111111 是十进制常量,而不是二进制。尽管您可以使用八进制或十六进制常量,但没有二进制常量(至少不是标准的)。

如果您想要一个所有位都已设置的数字,只需将按位补码运算符 ~ 应用于 0:

unsigned char foo = ~0u;

关于c - 将 char 设置为所有真位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48694806/

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