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

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条回答 默认 最新

  • threenewbee 2016-04-20 14:29
    关注
     mask = (unsigned short)(~0) >> n;
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?