不用*/+,把一个整数增加7倍

解决方案 »

  1.   

    int a = 4;
    int b = a<<3-a;
    是这样嘛?
      

  2.   

    没注意 那个<<比减号的优先级要低 所以要改成  b =(a<<3)-a;
      

  3.   

    运算符优先级的问题:
    int a = 4;
    int b = (a << 3) - a;
    Console.WriteLine(b);
      

  4.   

    其实这个问题挺无聊。
    var a = 4;
    var b = a - (-a) - (-a) - (-a) - (-a) - (-a) - (-a);Console.WriteLine(b);
      

  5.   

    请问一下"<<"是个什么运算符呀,有什么原理呀???
      

  6.   

      但是是最快 也是最简洁的写法, << 向左位移 移动一位相当于给原数乘以2,<<移动一位相当于原数除以2,左移或右移空出的位(2进制)都用0表示, 左移溢出的位都舍弃
      

  7.   

    <<  >> 移位运算符
    << 左移 >> 右移
    左移一位相当于乘以2
    右移一位相当于除2
      

  8.   

    移位运算符,<<3左移三位,相当于*8,然后再减a就是7倍
      

  9.   

    int[] PrimeNumber(int max)
    {
        var flags = new bool[max]; // 都会初始为
        var result = new int[max / 2]; // 返回值
        result[0] = 2;
        var count = 1;
        for (var i = 3; i < max; i += 2)
        {
            if (!flags[i]) // 可以处理
            {
                result[count++] = i;
                for (int j = i; j < max; j += i)
                    flags[j] = true; // 处理过了
            }
        }
        var temp = new int[count];
        Array.Copy(result, temp, temp.Length);
        return temp;
    }
    private void Form1_Load(object sender, EventArgs e)
    {
        var numbers = PrimeNumber(10000);
        foreach (var i in numbers)
            Console.WriteLine(i);
    }
      

  10.   

    很简单
    使用<<运算符左移3位
    然后再减去原来的数