Pat*_* Le -1 c++ bit-manipulation
我有以下代码:
#include <iostream>
using namespace std;
int main() {
int val = 16;
printf("%d\t%d\t",val,val & 017);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为什么输出
16 0
Run Code Online (Sandbox Code Playgroud)
并不是
16 16
Run Code Online (Sandbox Code Playgroud)
正如我所期望的布尔操作
16 AND 17 = 16
Run Code Online (Sandbox Code Playgroud)
文字017被解释为八进制表示,因为它以a开头0.有关详细信息,请参见此处.现在请注意
(17)_8 == (15)_10 == (1111)_2
Run Code Online (Sandbox Code Playgroud)
然后(16)_10 == (10000)_2结果很清楚.
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |