我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

答案是17,我理解的是~0是1,(~0<<4)是00010000,~(~0<<4)是11101111,答案不是357吗?如果按答案,应该是只操作了10000?


 
#include<stdio.h>
int main()
{
    unsigned a=~(~0<<4);
    printf("%o",a);
    return 0;
}

~的优先级高于<<

先计算~0,
0的二进制码:0000 0000
~0:1111 1111
<< 4: 1111 0000
最后再取反:0000 1111
值是15(十进制),也就是八进制的17(%o是八进制)

~0是-1

近期文章

  • macbookair链接手机反复断连
  • 请问这两个代码,一个循环条件中加了个num1>100,为什么打印出来的就超过1000,而另一个没加却成功打印出了所有的三位数?
  • C++如何计算一个闭区间内所有整数的阶乘
  • 计算2的幂,第一次做,
  • 在Linux下使用Smartctl工具的时候出现问题
  • IDEA写依赖时出现这种问题怎么办
  • 如何记住linux指令
  • Phabricator!Phabricator !Phabricator !
  • 编写一个Python程序实现如下操作
  • VC安装有问题 怎么解决
  • 太难了,根本不会,求
  • Linux c下char[2]为什么能输入9个字符
  • 关于tf.Sparse_Tensor的dense_shape的问题?
  • 关于单片机数码管显示分秒毫秒
  • 这种三项的e指数怎么用matlab拟合啊,我这边有t和N值2000个
  • 问一个unity问题
  • 求各路神仙帮帮我这个小新吧︽⊙_⊙︽
  • c语言字符的基本运用
  • python3.7 读取csv文件某一行用plt画图坐标轴乱,不按数字大小排列怎么解决?
  • 质因数分解不超时间求解

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华