首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按位操作产生意外输出

按位操作产生意外输出
EN

Stack Overflow用户
提问于 2015-07-27 20:17:14
回答 2查看 85关注 0票数 0
代码语言:javascript
复制
#include<stdio.h>
int main(void)
{
    int a=0x11;
    printf("\n %d",a);
    int b=10;
    int c=(a&b);
    printf("\t %d",c);
    return 0;
}

这个程序的操作程序是

17 0

但我希望这个程序能够对比特进行操作,从而导致

17 . 16

为什么输出是0?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-27 20:40:56

在二进制符号中,0x11

代码语言:javascript
复制
0001 0001

10

代码语言:javascript
复制
0000 1010

正如您很容易看到的,这些值没有公共的1位。因此,这些值之间按位和操作的结果是0。你为什么指望它生产16

票数 4
EN

Stack Overflow用户

发布于 2015-07-27 20:19:57

在您的示例中,b的十进制值为10,而不是十六进制值10。

代码语言:javascript
复制
 int b=10;

代码语言:javascript
复制
 int b=0x10;
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31662456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档