我是C的新手,我很难理解位掩码操作的用法.例如,我有以下代码
if((input & 0x08)== 0)
{
//Do....//
}
Run Code Online (Sandbox Code Playgroud)
我把输入作为int值00000111,它是二进制和十六进制的7,但是当我做这个比较时,它的计算结果为false(从不输入if语句).
这是我理解和应该发生的事情
00000111 input
& 00001000 0x08
------------
00000000 answer
Run Code Online (Sandbox Code Playgroud)
所以我的问题是如何才能获得正确的输出.
int main(){
int input = 7;
if((input & 0x08)== 0)
{
printf("Hello!\n");
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
你是对的,这个程序打印"你好!".
您的代码中必定存在其他问题.尝试始终创建函数并测试最简单的示例.
尝试打印语句input之前的值if.
希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |