BigInteger.LeftShift(BigInteger, Int32) BigInteger.LeftShift(BigInteger, Int32) BigInteger.LeftShift(BigInteger, Int32) BigInteger.LeftShift(BigInteger, Int32) Operator

Определение

Сдвигает значение BigInteger на указанное число битов влево.Shifts a BigInteger value a specified number of bits to the left.

public:
 static System::Numerics::BigInteger operator <<(System::Numerics::BigInteger value, int shift);
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 BigInteger BigInteger BigInteger

Значение, для которого необходимо выполнить побитовый сдвиг.The value whose bits are to be shifted.

shift
Int32 Int32 Int32 Int32

Количество битов, на которое необходимо сдвинуть влево значение value.The number of bits to shift value to the left.

Возвраты

Значение, которое было сдвинуто влево на указанное число бит.A value that has been shifted to the left by the specified number of bits.

Комментарии

LeftShift Метод определяет операцию побитового оператора сдвига влево для BigInteger значения.The LeftShift method defines the operation of the bitwise left-shift operator for BigInteger values. В результате следующий код:It enables code such as the following:

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 значение.Unlike the bitwise left-shift operation with integer primitives, the LeftShift method preserves the sign of the original BigInteger value.

Языки, не поддерживают пользовательские операторы могут выполнять операцию побитового сдвига влево путем умножения value по BigInteger.Pow(2, shift).Languages that do not support custom operators can perform a bitwise left-shift operation by multiplying value by BigInteger.Pow(2, shift). Следующий пример показывает, что результаты идентичны результатам с помощью этого оператора.The following example shows that the results are identical to the results of using this operator.

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      

Применяется к

Дополнительно