gpt4 book ai didi

c - 按位运算符 & 给出意想不到的结果

转载 作者:太空宇宙 更新时间:2023-11-04 02:49:05 25 4
gpt4 key购买 nike

& 运算符处理十进制数的二进制格式。所以 10 & 9 = 8 因为

1010 (10)
1001 (9)
=====
1000 (8)

前面的示例运行良好。但是当我尝试执行 010 & 010 时,我希望结果为 10。但是我得到 8。谁能向我解释为什么会这样?

最佳答案

因为以 0 开头的数字被认为是八进制的,而不是二进制的。

10 被视为十进制,因为它是默认值。所以 10 & 9 = 8 测试以十进制解析。

当它以 0 开头时,它被认为是八进制。所以 010 & 010 被解析为八进制,如(十进制):8 & 8

0x 被视为十六进制

正如 Oli Charlesworthdelnan 向我指出的那样,二进制没有 C 标准,尽管一些编译器(例如 GCC)考虑 0b 作为二进制 表示。

这里有有趣的信息:Writing binary number system in C code

关于c - 按位运算符 & 给出意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24025709/

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