using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace p4_5
{
class Program
{
static void Main(string[] args)
{
MoveBit(16, 1);
MoveBit(16, 3);
MoveBit(16, 5);
MoveBit(16, 7);
}
static void MoveBit(int x,int n)
{
Console.Write("{0}<<{1}={2} ", x, n, x << n);
Console.Write("{0}>>{1}={2}", x, n, x >> n);
Console.Write("{0}<<{1}={2}", -x, n, -x << n);
Console.WriteLine("{0}>>{1}={2}", -x, n, -x >> n);
}
}
}这个运行结果为什么会出现0和-1呢,我实在想不明白啊。。它是怎么出来的?
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace p4_5
{
class Program
{
static void Main(string[] args)
{
MoveBit(16, 1);
MoveBit(16, 3);
MoveBit(16, 5);
MoveBit(16, 7);
}
static void MoveBit(int x,int n)
{
Console.Write("{0}<<{1}={2} ", x, n, x << n);
Console.Write("{0}>>{1}={2}", x, n, x >> n);
Console.Write("{0}<<{1}={2}", -x, n, -x << n);
Console.WriteLine("{0}>>{1}={2}", -x, n, -x >> n);
}
}
}这个运行结果为什么会出现0和-1呢,我实在想不明白啊。。它是怎么出来的?
下面是个简单的例子http://www.cnblogs.com/zhongweiv/archive/2011/11/07/Displacement.html