java中的">>>"在c#中如何实现

解决方案 »

  1.   

    与C#等价的java代码
      public static int foo(int x, int y) {
        int mask = 0x7fffffff; //Integer.MAX_VALUE
        for (int i = 0; i < y; i++) {
          x >>= 1;
          x &= mask;
        }
        return x;
      }  //测试,没有考虑移位数<=0的控制
      public static void main(String[] args) {
        System.out.println((1 >>> 3) == foo(1, 3));
        System.out.println((1 >>> 5) == foo(1, 5));
        System.out.println((1 >>> 7) == foo(1, 7));
        System.out.println((10 >>> 9) == foo(10, 9));
        System.out.println((-1 >>> 5) == foo(-1, 5));
        System.out.println((-9999 >>> 7) == foo(-9999, 7));
        System.out.println((-1234 >>> 3) == foo(-1234, 3));
        System.out.println((-10000 >>> 5) == foo(-10000, 5));
        System.out.println((-10000 >>> 7) == foo(-10000, 7));
      }