#include<stdio.h>
int main()
{
int num;
printf("enter the number\n");
scanf("%d",&num);
int a,b;
printf("enter the number of bits yiu want to shift\n");
scanf("%d",&b);
a=num>>b;
printf("a is=%d\n",a);
return 0;
}
对于正数num,我得到了预期的结果。但是,在我的程序中进行dry run时,使用负值num时无法找到答案。 以num=-1为例子: 所以-1将被表示为1111111111111111,并将其右移1位应该产生输出0111111111111111,即十进制形式的32767。但输出为-1。