BigInteger.LeftShift Operator
Shifts a BigInteger value a specified number of bits to the left.
Assembly: System.Numerics (in System.Numerics.dll)
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.BigIntegerA 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.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
Note
|
|---|
|
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.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
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Note