开发者社区> 问答> 正文

c语言问题:int a=12;a=a&052;printf(“%d\n”,a);几进制怎么算?

什么1010啊?不明白 最好举个例子谢啦

展开
收起
知与谁同 2018-07-16 09:28:24 4317 0
2 条回答
写回答
取消 提交回答
  • 你这里 的 &符号,是位运算符,下面给你详细介绍
    位运算符:

    包括:1。&位与符 2。|位或符 3。^位异或符 4。~位取反符
    以操作数12为例。位运算符将数字12视为1100。位运算符将操作数视为位而不是数值。数值
    可以是任意进制的:十进制、八进制或十六进制。位运算符则将操作数转化为二进制,并相应地返回1或0。
    位运算符将数字视为二进制值,并按位进行相应运算,运算完成后再重新转换为数字。例如:
    表达式10&15表示(1010 & 1111),它将返回表示1010的值10。因为真真得真,或者是11得1,同位全是1结果也是1
    表达式10|15表示(1010 | 1111),它将返回表示1111的值15。假假得假。全零得零。
    表达式10^15表示(1010 ^ 1111), 它将返回表示0101的值5。此时是同性相斥,相同的就为假。
    表达式~10表示(~1010),它将返回表示0101的值 -11。此号好理解,按位取反
    2019-07-17 22:57:56
    赞同 展开评论 打赏
  • 杀人者,打虎武松也。
    a=12,换算成二进制就是0000 1100,
    052是八进制的表示,第一个0表示八进制,换算成二进制就是0010 1010
    符号&表示位与运算,0000 1100 & 0010 1010 = 0000 1000,这个换算成十进制就是8,所以最后的结果就是8

    -------------------------

    12的二进制,052的二进制,进行与运算得001000,转换过来为8

    2019-07-17 22:57:56
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载