qq_30034465
qq_30034465
2016-04-20 14:01
采纳率: 100%
浏览 1.3k
已采纳

C语言中位运算的一个诡异问题

 #include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
int main()
{
  unsigned short x,n;
  unsigned short mask;
  scanf("%hu%hu",&x,&n);
  mask = (~0>> n);
  printf("%x",mask);
  return 0;
}

图片说明

为什么程序里的 ~0>>n, 不能成功移位,求解答,谢谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • caozhy
    已采纳
     mask = (unsigned short)(~0) >> n;
    
    点赞 评论

相关推荐