Exporter (0) Imprimer
Développer tout

BigInteger.LeftShift Operator

Shifts a BigInteger value a specified number of bits to the left.

Namespace:  System.Numerics
Assembly:  System.Numerics (in System.Numerics.dll)

public static BigInteger operator <<(
	BigInteger value,
	int shift
)

Parameters

value
Type: System.Numerics.BigInteger
The value whose bits are to be shifted.
shift
Type: System.Int32
The number of bits to shift value to the left.

Return Value

Type: System.Numerics.BigInteger
A value that has been shifted to the left by the specified number of bits.

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.MinusOne * ((BigInteger) UInt64.MaxValue) * 490456290 + 17478743027342903705;
outputBlock.Text += String.Format("Shifting {0} left by:", number) + "\n";
for (int ctr = 0; ctr <= 16; ctr++)
{
   BigInteger newNumber = number << ctr;
   outputBlock.Text += String.Format(" {0,2} bits: {1,35} {2,30}",
                     ctr, newNumber, newNumber.ToString("X")) + "\n";
}
// 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      


NoteNote:

Unlike the bitwise left-shift operation with integer primitives, the LeftShift method preserves the sign of the original BigInteger value.

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.MinusOne * ((BigInteger) UInt64.MaxValue) * 490456290 + 17478743027342903705;
outputBlock.Text += String.Format("Shifting {0} left by:", number) + "\n";
for (int ctr = 0; ctr <= 16; ctr++)
{
   BigInteger newNumber = BigInteger.Multiply(number, BigInteger.Pow(2, ctr));
   outputBlock.Text += String.Format(" {0,2} bits: {1,35} {2,30}",
                     ctr, newNumber, newNumber.ToString("X")) + "\n";
}
// 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      


Silverlight

Supported in: 5, 4

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Ajouts de la communauté

AJOUTER
Microsoft réalise une enquête en ligne pour recueillir votre opinion sur le site Web de MSDN. Si vous choisissez d’y participer, cette enquête en ligne vous sera présentée lorsque vous quitterez le site Web de MSDN.

Si vous souhaitez y participer,
Afficher:
© 2014 Microsoft