BigInteger.LeftShift(BigInteger, Int32) 运算符

定义

BigInteger 值向左移动指定的位数。

public:
 static System::Numerics::BigInteger operator <<(System::Numerics::BigInteger value, int shift);
public:
 static System::Numerics::BigInteger operator <<(System::Numerics::BigInteger value, int shift) = System::Numerics::IShiftOperators<System::Numerics::BigInteger, System::Numerics::BigInteger>::op_LeftShift;
public static System.Numerics.BigInteger operator << (System.Numerics.BigInteger value, int shift);
static member ( <<< ) : System.Numerics.BigInteger * int -> System.Numerics.BigInteger
Public Shared Operator << (value As BigInteger, shift As Integer) As BigInteger

参数

value
BigInteger

要移动其位的值。

shift
Int32

value 向左移动的位数。

返回

BigInteger

一个已向左移动指定位数的值。

实现

System.Numerics.IShiftOperators`2.op_LeftShift(`0,System.Int32)

注解

该方法 LeftShift 定义值的按位左移运算符 BigInteger 的操作。 它启用如下代码:

BigInteger number = BigInteger.Parse("-9047321678449816249999312055");
Console.WriteLine("Shifting {0} left by:", number);
for (int ctr = 0; ctr <= 16; ctr++)
{
   BigInteger newNumber = number << ctr;
   Console.WriteLine(" {0,2} bits: {1,35} {2,30}",
                     ctr, newNumber, newNumber.ToString("X"));
}
// The example displays the following output:
//    Shifting -9047321678449816249999312055 left by:
//      0 bits:       -9047321678449816249999312055       E2C43B1D0D6F07D2CC1FBB49
//      1 bits:      -18094643356899632499998624110       C588763A1ADE0FA5983F7692
//      2 bits:      -36189286713799264999997248220       8B10EC7435BC1F4B307EED24
//      3 bits:      -72378573427598529999994496440      F1621D8E86B783E9660FDDA48
//      4 bits: -1.4475714685519705999998899288E+29      E2C43B1D0D6F07D2CC1FBB490
//      5 bits: -2.8951429371039411999997798576E+29      C588763A1ADE0FA5983F76920
//      6 bits: -5.7902858742078823999995597152E+29      8B10EC7435BC1F4B307EED240
//      7 bits:  -1.158057174841576479999911943E+30     F1621D8E86B783E9660FDDA480
//      8 bits: -2.3161143496831529599998238861E+30     E2C43B1D0D6F07D2CC1FBB4900
//      9 bits: -4.6322286993663059199996477722E+30     C588763A1ADE0FA5983F769200
//     10 bits: -9.2644573987326118399992955443E+30     8B10EC7435BC1F4B307EED2400
//     11 bits: -1.8528914797465223679998591089E+31    F1621D8E86B783E9660FDDA4800
//     12 bits: -3.7057829594930447359997182177E+31    E2C43B1D0D6F07D2CC1FBB49000
//     13 bits: -7.4115659189860894719994364355E+31    C588763A1ADE0FA5983F7692000
//     14 bits: -1.4823131837972178943998872871E+32    8B10EC7435BC1F4B307EED24000
//     15 bits: -2.9646263675944357887997745742E+32   F1621D8E86B783E9660FDDA48000
//     16 bits: -5.9292527351888715775995491484E+32   E2C43B1D0D6F07D2CC1FBB490000
Dim number As BigInteger = BigInteger.Parse("-9047321678449816249999312055")
Console.WriteLine("Shifting {0} left by:", number)
For ctr As Integer = 0 To 16
   Dim newNumber As BigInteger = number << ctr
   Console.WriteLine(" {0,2} bits: {1,35} {2,30}", ctr, newNumber, newNumber.ToString("X"))
Next
' The example displays the following output:
'    Shifting -9047321678449816249999312055 left by:
'      0 bits:       -9047321678449816249999312055       E2C43B1D0D6F07D2CC1FBB49
'      1 bits:      -18094643356899632499998624110       C588763A1ADE0FA5983F7692
'      2 bits:      -36189286713799264999997248220       8B10EC7435BC1F4B307EED24
'      3 bits:      -72378573427598529999994496440      F1621D8E86B783E9660FDDA48
'      4 bits: -1.4475714685519705999998899288E+29      E2C43B1D0D6F07D2CC1FBB490
'      5 bits: -2.8951429371039411999997798576E+29      C588763A1ADE0FA5983F76920
'      6 bits: -5.7902858742078823999995597152E+29      8B10EC7435BC1F4B307EED240
'      7 bits:  -1.158057174841576479999911943E+30     F1621D8E86B783E9660FDDA480
'      8 bits: -2.3161143496831529599998238861E+30     E2C43B1D0D6F07D2CC1FBB4900
'      9 bits: -4.6322286993663059199996477722E+30     C588763A1ADE0FA5983F769200
'     10 bits: -9.2644573987326118399992955443E+30     8B10EC7435BC1F4B307EED2400
'     11 bits: -1.8528914797465223679998591089E+31    F1621D8E86B783E9660FDDA4800
'     12 bits: -3.7057829594930447359997182177E+31    E2C43B1D0D6F07D2CC1FBB49000
'     13 bits: -7.4115659189860894719994364355E+31    C588763A1ADE0FA5983F7692000
'     14 bits: -1.4823131837972178943998872871E+32    8B10EC7435BC1F4B307EED24000
'     15 bits: -2.9646263675944357887997745742E+32   F1621D8E86B783E9660FDDA48000
'     16 bits: -5.9292527351888715775995491484E+32   E2C43B1D0D6F07D2CC1FBB490000

备注

与整数基元的按位左移运算不同,该方法 LeftShift 保留原始 BigInteger 值的符号。

不支持自定义运算符的语言可以通过乘以value``BigInteger.Pow(2, shift)按位左移操作。 以下示例显示结果与使用此运算符的结果相同。

BigInteger number = BigInteger.Parse("-9047321678449816249999312055");
Console.WriteLine("Shifting {0} left by:", number);
for (int ctr = 0; ctr <= 16; ctr++)
{
   BigInteger newNumber = BigInteger.Multiply(number, BigInteger.Pow(2, ctr));
   Console.WriteLine(" {0,2} bits: {1,35} {2,30}",
                     ctr, newNumber, newNumber.ToString("X"));
}
// The example displays the following output:
//    Shifting -9047321678449816249999312055 left by:
//      0 bits:       -9047321678449816249999312055       E2C43B1D0D6F07D2CC1FBB49
//      1 bits:      -18094643356899632499998624110       C588763A1ADE0FA5983F7692
//      2 bits:      -36189286713799264999997248220       8B10EC7435BC1F4B307EED24
//      3 bits:      -72378573427598529999994496440      F1621D8E86B783E9660FDDA48
//      4 bits: -1.4475714685519705999998899288E+29      E2C43B1D0D6F07D2CC1FBB490
//      5 bits: -2.8951429371039411999997798576E+29      C588763A1ADE0FA5983F76920
//      6 bits: -5.7902858742078823999995597152E+29      8B10EC7435BC1F4B307EED240
//      7 bits:  -1.158057174841576479999911943E+30     F1621D8E86B783E9660FDDA480
//      8 bits: -2.3161143496831529599998238861E+30     E2C43B1D0D6F07D2CC1FBB4900
//      9 bits: -4.6322286993663059199996477722E+30     C588763A1ADE0FA5983F769200
//     10 bits: -9.2644573987326118399992955443E+30     8B10EC7435BC1F4B307EED2400
//     11 bits: -1.8528914797465223679998591089E+31    F1621D8E86B783E9660FDDA4800
//     12 bits: -3.7057829594930447359997182177E+31    E2C43B1D0D6F07D2CC1FBB49000
//     13 bits: -7.4115659189860894719994364355E+31    C588763A1ADE0FA5983F7692000
//     14 bits: -1.4823131837972178943998872871E+32    8B10EC7435BC1F4B307EED24000
//     15 bits: -2.9646263675944357887997745742E+32   F1621D8E86B783E9660FDDA48000
//     16 bits: -5.9292527351888715775995491484E+32   E2C43B1D0D6F07D2CC1FBB490000
Dim number As BigInteger = BigInteger.Parse("-9047321678449816249999312055")
Console.WriteLine("Shifting {0} left by:", number)
For ctr As Integer = 0 To 16
   Dim newNumber As BigInteger = BigInteger.Multiply(number, BigInteger.Pow(2, ctr))
   Console.WriteLine(" {0,2} bits: {1,35} {2,30}", 
                     ctr, newNumber, newNumber.ToString("X"))
Next
' The example displays the following output:
'    Shifting -9047321678449816249999312055 left by:
'      0 bits:       -9047321678449816249999312055       E2C43B1D0D6F07D2CC1FBB49
'      1 bits:      -18094643356899632499998624110       C588763A1ADE0FA5983F7692
'      2 bits:      -36189286713799264999997248220       8B10EC7435BC1F4B307EED24
'      3 bits:      -72378573427598529999994496440      F1621D8E86B783E9660FDDA48
'      4 bits: -1.4475714685519705999998899288E+29      E2C43B1D0D6F07D2CC1FBB490
'      5 bits: -2.8951429371039411999997798576E+29      C588763A1ADE0FA5983F76920
'      6 bits: -5.7902858742078823999995597152E+29      8B10EC7435BC1F4B307EED240
'      7 bits:  -1.158057174841576479999911943E+30     F1621D8E86B783E9660FDDA480
'      8 bits: -2.3161143496831529599998238861E+30     E2C43B1D0D6F07D2CC1FBB4900
'      9 bits: -4.6322286993663059199996477722E+30     C588763A1ADE0FA5983F769200
'     10 bits: -9.2644573987326118399992955443E+30     8B10EC7435BC1F4B307EED2400
'     11 bits: -1.8528914797465223679998591089E+31    F1621D8E86B783E9660FDDA4800
'     12 bits: -3.7057829594930447359997182177E+31    E2C43B1D0D6F07D2CC1FBB49000
'     13 bits: -7.4115659189860894719994364355E+31    C588763A1ADE0FA5983F7692000
'     14 bits: -1.4823131837972178943998872871E+32    8B10EC7435BC1F4B307EED24000
'     15 bits: -2.9646263675944357887997745742E+32   F1621D8E86B783E9660FDDA48000
'     16 bits: -5.9292527351888715775995491484E+32   E2C43B1D0D6F07D2CC1FBB490000

适用于

另请参阅