2011年1月3日 星期一

/ 2 and >> 1


#include <stdio.h>
int main()
{
  int i = -13;
  if ((i / 2) == (i >> 1))
    printf("yes\n");
  else
    printf("no\n");
  return 0;
}

The output is no.


1 則留言:

  1. 因為負數的關係 >> 會把高位元的1 往右移, 所以會跟i/2 差1

    回覆刪除