Operatory arytmetyczne — informacjeAbout Arithmetic Operators

KRÓTKI OPISSHORT DESCRIPTION

Opisuje operatory, które wykonują operacje arytmetyczne w programie PowerShell.Describes the operators that perform arithmetic in PowerShell.

DŁUGI OPISLONG DESCRIPTION

Operatory arytmetyczne obliczają wartości numeryczne.Arithmetic operators calculate numeric values. Do dodawania, odejmowania, mnożenia i dzielenia wartości oraz do obliczania reszty (modulo) operacji dzielenia można używać jednego lub większej liczby operatorów arytmetycznych.You can use one or more arithmetic operators to add, subtract, multiply, and divide values, and to calculate the remainder (modulus) of a division operation.

Ponadto operator dodawania ( + ) i operator mnożenia ( * ) również działają na ciągach, tablicach i tabelach skrótów.In addition, the addition operator (+) and multiplication operator (*) also operate on strings, arrays, and hash tables. Operator dodawania łączy dane wejściowe.The addition operator concatenates the input. Operator mnożenia zwraca wiele kopii danych wejściowych.The multiplication operator returns multiple copies of the input. Można nawet mieszać typy obiektów w instrukcji arytmetycznej.You can even mix object types in an arithmetic statement. Metoda, która jest używana do szacowania instrukcji jest określana na podstawie typu obiektu z lewej strony w wyrażeniu.The method that is used to evaluate the statement is determined by the type of the leftmost object in the expression.

Począwszy od programu PowerShell 2,0, wszystkie operatory arytmetyczne pracują na numerach 64-bitowych.Beginning in PowerShell 2.0, all arithmetic operators work on 64-bit numbers.

Począwszy od programu PowerShell 3,0, w -shr programie PowerShell są dodawane (Shift-Right) i -shl (Shift-Left).Beginning in PowerShell 3.0, the -shr (shift-right) and -shl (shift-left) are added to support bitwise arithmetic in PowerShell.

Program PowerShell obsługuje następujące operatory arytmetyczne:PowerShell supports the following arithmetic operators:

OperatorOperator OpisDescription PrzykładExample
+ Dodaje liczby całkowite; łączyAdds integers; concatenates 6 + 2
ciągi, tablice i tabele skrótów.strings, arrays, and hash tables. "file" + "name"
@(1, "one") + @(2.0, "two")
@{"one" = 1} + @{"two" = 2}
- Odejmuje jedną wartość od innegoSubtracts one value from another 6 - 2
wartośćvalue
- Tworzy liczbę ujemnąMakes a number a negative number -6
(Get-Date).AddDays(-1)
* Mnożenie liczb lub kopiowanie ciągówMultiply numbers or copy strings 6 * 2
i tablicuje określoną liczbęand arrays the specified number @("!") * 4
razy.of times. "!" * 3
/ Dzieli dwie wartości.Divides two values. 6 / 2
% Moduł — Zwraca resztęModulus - returns the remainder of 7 % 2
operacja dzielenia.a division operation.
-Band-band Bitowe ORAZBitwise AND 5 -band 3
-bnot-bnot NIE ma koniunkcjiBitwise NOT -bnot 5
-Blub-bor Bitowe ORBitwise OR 5 -bor 0x03
-bxor-bxor Bitowe XORBitwise XOR 5 -bxor 3
-shl-shl Przesuwa bity w lewoShifts bits to the left 102 -shl 2
-SHR-shr Przenosi bity w prawoShifts bits to the right 102 -shr 2

Operatory bitowe działają tylko w przypadku typów całkowitych.The bitwise operators only work on integer types.

PIERWSZEŃSTWO OPERATORÓWOPERATOR PRECEDENCE

Program PowerShell przetwarza operatory arytmetyczne w następującej kolejności:PowerShell processes arithmetic operators in the following order:

PierwszeństwoPrecedence OperatorOperator OpisDescription
11 () NawiasyParentheses
22 - Dla liczby ujemnej lub operatora jednoargumentowegoFor a negative number or unary operator
33 *, /, %*, /, % Dla mnożenia i dzieleniaFor multiplication and division
44 +, -+, - Dodawanie i odejmowanieFor addition and subtraction
55 -band, -bnot-band, -bnot Dla operacji bitowychFor bitwise operations
55 -bor, -bxor-bor, -bxor Dla operacji bitowychFor bitwise operations
55 -shr, -shl-shr, -shl Dla operacji bitowychFor bitwise operations

Program PowerShell przetwarza wyrażenia od lewej do prawej, zgodnie z regułami pierwszeństwa.PowerShell processes the expressions from left to right according to the precedence rules. W poniższych przykładach pokazano efekt reguł pierwszeństwa:The following examples show the effect of the precedence rules:

WyrażenieExpression WynikResult
3+6/3*4 11
3+6/(3*4) 3.5
(3+6)/3*4 12

Kolejność, w której program PowerShell oblicza wyrażenia, może różnić się od innych języków programowania i skryptów, które były używane.The order in which PowerShell evaluates expressions might differ from other programming and scripting languages that you have used. Poniższy przykład pokazuje skomplikowaną instrukcję przypisania.The following example shows a complicated assignment statement.

$a = 0
$b = @(1,2)
$c = @(-1,-2)

$b[$a] = $c[$a++]

W tym przykładzie wyrażenie $a++ jest oceniane przed $b[$a] .In this example, the expression $a++ is evaluated before $b[$a]. Ocenianie $a++ zmienia wartość $a po jej użyciu w instrukcji, $c[$a++] ale zanim zostanie użyta w $b[$a] .Evaluating $a++ changes the value of $a after it is used in the statement $c[$a++]; but, before it is used in $b[$a]. Zmienna $a w $b[$a] Equals równa się, 1 not 0 ;, dlatego instrukcja przypisuje wartość do $b[1] , nie $b[0] .The variable $a in $b[$a] equals 1, not 0; so, the statement assigns a value to $b[1], not $b[0].

Powyższy kod jest równoważny z:The above code is equivalent to:

$a = 0
$b = @(1,2)
$c = @(-1,-2)

$tmp = $c[$a]
$a = $a + 1
$b[$a] = $tmp

DZIELENIE I ZAOKRĄGLENIEDIVISION AND ROUNDING

Gdy iloraz operacji dzielenia jest liczbą całkowitą, program PowerShell Zaokrągla wartość do najbliższej liczby całkowitej.When the quotient of a division operation is an integer, PowerShell rounds the value to the nearest integer. Gdy wartość jest .5 , zaokrąglana do najbliższej parzystej liczby całkowitej.When the value is .5, it rounds to the nearest even integer.

Poniższy przykład pokazuje efekt zaokrąglenia do najbliższej parzystej liczby całkowitej.The following example shows the effect of rounding to the nearest even integer.

WyrażenieExpression WynikResult
[int]( 5 / 2 ) 2
[int]( 7 / 2 ) 4

Zwróć uwagę, jak 5/2 = 2,5 zaokrągla się do 2.Notice how 5/2 = 2.5 gets rounded to 2. Ale 7/2 = 3,5 jest zaokrąglana do 4.But, 7/2 = 3.5 gets rounded to 4.

Możesz użyć klasy, [Math] Aby uzyskać inne zachowanie zaokrągleń.You can use the [Math] class to get different rounding behavior.

WyrażenieExpression WynikResult
[int][Math]::Round(5 / 2,[MidpointRounding]::AwayFromZero) 3
[int][Math]::Ceiling(5 / 2) 3
[int][Math]::Floor(5 / 2) 2

Aby uzyskać więcej informacji, zobacz Metoda Math. Round .For more information, see the Math.Round method.

DODAWANIE I MNOŻENIE TYPÓW NIELICZBOWYCHADDING AND MULTIPLYING NON-NUMERIC TYPES

Można dodawać liczby, ciągi, tablice i tabele skrótów.You can add numbers, strings, arrays, and hash tables. I można mnożyć liczby, ciągi i tablice.And, you can multiply numbers, strings, and arrays. Nie można jednak pomnożyć tabel skrótów.However, you cannot multiply hash tables.

Po dodaniu ciągów, tablic lub tablic skrótów, elementy są łączone.When you add strings, arrays, or hash tables, the elements are concatenated. Podczas łączenia kolekcji, takich jak tablice lub tabele skrótów, tworzony jest nowy obiekt zawierający obiekty z obu kolekcji.When you concatenate collections, such as arrays or hash tables, a new object is created that contains the objects from both collections. Jeśli spróbujesz połączyć tabele skrótów, które mają ten sam klucz, operacja zakończy się niepowodzeniem.If you try to concatenate hash tables that have the same key, the operation fails.

Na przykład następujące polecenia powodują utworzenie dwóch tablic, a następnie ich dodanie:For example, the following commands create two arrays and then add them:

$a = 1,2,3
$b = "A","B","C"
$a + $b
1
2
3
A
B
C

Można również wykonywać operacje arytmetyczne na obiektach różnych typów.You can also perform arithmetic operations on objects of different types. Operacja wykonywana przez program PowerShell jest określana na podstawie typu Microsoft .NET Framework w obiekcie z lewej strony.The operation that PowerShell performs is determined by the Microsoft .NET Framework type of the leftmost object in the operation. Program PowerShell próbuje skonwertować wszystkie obiekty w operacji na typ .NET Framework pierwszego obiektu.PowerShell tries to convert all the objects in the operation to the .NET Framework type of the first object. W przypadku powodzenia konwersji obiektów program wykonuje operację odpowiednią do typu .NET Framework pierwszego obiektu.If it succeeds in converting the objects, it performs the operation appropriate to the .NET Framework type of the first object. Jeśli nie można przekonwertować żadnego z obiektów, operacja zakończy się niepowodzeniem.If it fails to convert any of the objects, the operation fails.

W poniższych przykładach pokazano użycie operatorów dodawania i mnożenia; w operacjach obejmujących różne typy obiektów.The following examples demonstrate the use of the addition and multiplication operators; in operations that include different object types. Załóżmy $array = 1,2,3 :Assume $array = 1,2,3:

WyrażenieExpression WynikResult
"file" + 16 file16
$array + 16 1,2,3,161,2,3,16
$array + "file" 1,2,3,file1,2,3,file
$array * 2 1,2,3,1,2,31,2,3,1,2,3
"file" * 3 filefilefile

Ponieważ metoda używana do obliczania instrukcji jest określana przez obiekt z lewej strony, Dodawanie i mnożenie w programie PowerShell nie są ściśle komutatywna.Because the method that is used to evaluate statements is determined by the leftmost object, addition and multiplication in PowerShell are not strictly commutative. Na przykład nie (a + b) zawsze jest równe (b + a) i nie (ab) zawsze jest równe (ba) .For example, (a + b) does not always equal (b + a), and (ab) does not always equal (ba).

Następujące przykłady przedstawiają tę zasadę:The following examples demonstrate this principle:

WyrażenieExpression WynikResult
"file" + 16 file16
16 + "file" Cannot convert value "file" to type "System.Int32".
Error: "Input string was not in a correct format."
At line:1 char:1
+ 16 + "plik"+ 16 + "file"`

Tabele skrótów są nieco inaczej.Hash tables are a slightly different case. Można dodać tabele skrótów do innej tabeli skrótów, tak długo, jak dodane tabele skrótów nie mają zduplikowanych kluczy.You can add hash tables to another hash table, as long as, the added hash tables don't have duplicate keys.

Poniższy przykład pokazuje, jak dodać do siebie tabele skrótów.The following example show how to add hash tables to each other.

$hash1 = @{a=1; b=2; c=3}
$hash2 = @{c1="Server01"; c2="Server02"}
$hash1 + $hash2
Name                           Value
----                           -----
c2                             Server02
a                              1
b                              2
c1                             Server01
c                              3

Poniższy przykład zgłasza błąd, ponieważ jeden z kluczy jest zduplikowany w obu tabelach skrótów.The following example throws an error because one of the keys is duplicated in both hash tables.

$hash1 = @{a=1; b=2; c=3}
$hash2 = @{c1="Server01"; c="Server02"}
$hash1 + $hash2
Item has already been added. Key in dictionary: 'c'  Key being added: 'c'
At line:3 char:1
+ $hash1 + $hash2
+ ~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException

Ponadto można dodać tabelę skrótów do tablicy; a cała tabela skrótów jest elementem w tablicy.Also, you can add a hash table to an array; and, the entire hash table becomes an item in the array.

$array1 = @(0, "Hello World", [datetime]::Now)
$hash1 = @{a=1; b=2}
$array2 = $array1 + $hash1
$array2
0
Hello World

Monday, June 12, 2017 3:05:46 PM

Key   : a
Value : 1
Name  : a

Key   : b
Value : 2
Name  : b

Nie można jednak dodać innego typu do tabeli skrótów.However, you cannot add any other type to a hash table.

$hash1 + 2
A hash table can only be added to another hash table.
At line:3 char:1
+ $hash1 + 2

Mimo że operatory dodawania są bardzo przydatne, użyj operatorów przypisania, aby dodać elementy do tabel i tablic skrótów.Although the addition operators are very useful, use the assignment operators to add elements to hash tables and arrays. Aby uzyskać więcej informacji, zobacz about_assignment_operators.For more information see about_assignment_operators. W poniższych przykładach użyto += operatora przypisania, aby dodać elementy do tablicy:The following examples use the += assignment operator to add items to an array:

$array = @()
(0..9).foreach{ $array += $_ }
$array
0
1
2

KONWERSJA TYPU W CELU UWZGLĘDNIENIA WYNIKUTYPE CONVERSION TO ACCOMMODATE RESULT

Program PowerShell automatycznie wybiera .NET Framework typ liczbowy, który najlepiej wyraża wynik bez utraty dokładności.PowerShell automatically selects the .NET Framework numeric type that best expresses the result without losing precision. Przykład:For example:

2 + 3.1

(2). GetType().FullName
(2 + 3.1).GetType().FullName
5.1
System.Int32
System.Double

Jeśli wynik operacji jest zbyt duży dla typu, typ wyniku zostanie rozszerzony, aby pomieścić wynik, jak w poniższym przykładzie:If the result of an operation is too large for the type, the type of the result is widened to accommodate the result, as in the following example:

(512MB).GetType().FullName
(512MB * 512MB).GetType().FullName
System.Int32
System.Double

Typ wyniku nie musi być taki sam jak jeden z operandów.The type of the result will not necessarily be the same as one of the operands. W poniższym przykładzie wartość ujemna nie może być rzutowana na liczbę całkowitą bez znaku, a liczba całkowita bez znaku jest zbyt duża, aby można było rzutować Int32 :In the following example, the negative value cannot be cast to an unsigned integer, and the unsigned integer is too large to be cast to Int32:

([int32]::minvalue + [uint32]::maxvalue).gettype().fullname
System.Int64

W tym przykładzie Int64 można obsłużyć oba typy.In this example, Int64 can accommodate both types.

System.DecimalTyp to wyjątek.The System.Decimal type is an exception. Jeśli oba operandy mają typ dziesiętny, wynik będzie typu dziesiętnego.If either operand has the Decimal type, the result will be of the Decimal type. Jeśli wynik jest za duży dla typu dziesiętnego, nie będzie rzutowany do wartości Double.If the result is too large for the Decimal type, it will not be cast to Double. Zamiast tego, wyniki błędu.Instead, an error results.

WyrażenieExpression WynikResult
[Decimal]::maxvalue 79228162514264337593543950335
[Decimal]::maxvalue + 1 Value was either too large or too small for a
Decimal.

OPERATORY ARYTMETYCZNE I ZMIENNEARITHMETIC OPERATORS AND VARIABLES

Operatory arytmetyczne mogą również używać zmiennych.You can also use arithmetic operators with variables. Operatory działają na wartości zmiennych.The operators act on the values of the variables. W poniższych przykładach pokazano użycie operatorów arytmetycznych ze zmiennymi:The following examples demonstrate the use of arithmetic operators with variables:

WyrażenieExpression WynikResult
$intA = 6
$intB = 4
$intA + $intB
10
$a = "Power"
$b = "Shell"
$a + $b
PowerShell

OPERATORY ARYTMETYCZNE I POLECENIAARITHMETIC OPERATORS AND COMMANDS

Zazwyczaj operatory arytmetyczne są używane w wyrażeniach z liczbami, ciągami i tablicami.Typically, you use the arithmetic operators in expressions with numbers, strings, and arrays. Można jednak również użyć operatorów arytmetycznych z obiektami zwracanymi przez polecenia i z właściwościami tych obiektów.However, you can also use arithmetic operators with the objects that commands return and with the properties of those objects.

W poniższych przykładach pokazano, jak używać operatorów arytmetycznych w wyrażeniach za pomocą poleceń programu PowerShell:The following examples show how to use the arithmetic operators in expressions with PowerShell commands:

(get-date) + (new-timespan -day 1)

Operator nawiasu wymusza ocenę get-date polecenia cmdlet i ocenę new-timespan -day 1 wyrażenia polecenia cmdlet w tej kolejności.The parenthesis operator forces the evaluation of the get-date cmdlet and the evaluation of the new-timespan -day 1 cmdlet expression, in that order. Oba wyniki są następnie dodawane przy użyciu + operatora.Both results are then added using the + operator.

Get-Process | Where-Object { ($_.ws * 2) -gt 50mb }
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
   1896      39    50968      30620   264 1,572.55   1104 explorer
  12802      78   188468      81032   753 3,676.39   5676 OUTLOOK
    660       9    36168      26956   143    12.20    988 PowerShell
    561      14     6592      28144   110 1,010.09    496 services
   3476      80    34664      26092   234 ...45.69    876 svchost
    967      30    58804      59496   416   930.97   2508 WINWORD

W powyższym wyrażeniu każdy proces roboczy ( $_.ws ) jest mnożony przez 2 ; i, wynik, w porównaniu 50mb z, aby sprawdzić, czy jest on większy niż.In the above expression, each process working space ($_.ws) is multiplied by 2; and, the result, compared against 50mb to see if it is greater than that.

Operatory bitoweBitwise Operators

Program PowerShell obsługuje standardowe operatory bitowe, w tym bitowe i niedozwolone -bAnd Operatory bitowe ( -bOr i -bXor ), a także bitowe-not ( -bNot ).PowerShell supports the standard bitwise operators, including bitwise-AND (-bAnd), the inclusive and exclusive bitwise-OR operators (-bOr and -bXor), and bitwise-NOT (-bNot).

Począwszy od programu PowerShell 2,0, wszystkie operatory bitowe działają z 64-bitowymi liczbami całkowitymi.Beginning in PowerShell 2.0, all bitwise operators work with 64-bit integers.

Począwszy od programu PowerShell 3,0, -shr wprowadzono (Shift-Right) i -shl (Shift-Left), aby obsługiwać bitowe operacje arytmetyczne w programie PowerShell.Beginning in PowerShell 3.0, the -shr (shift-right) and -shl (shift-left) are introduced to support bitwise arithmetic in PowerShell.

Program PowerShell obsługuje następujące operatory bitowe.PowerShell supports the following bitwise operators.

OperatorOperator OpisDescription WyrażenieExpression WynikResult
-band Bitowe ORAZBitwise AND 10 -band 3 22
-bor Bitowe OR (włącznie)Bitwise OR (inclusive) 10 -bor 3 1111
-bxor Bitowe lub (wyłącznie)Bitwise OR (exclusive) 10 -bxor 3 99
-bnot NIE ma koniunkcjiBitwise NOT -bNot 10 -11-11
-shl Przesuń w lewoShift-left 102 -shl 2 408408
-shr Przesuń w prawoShift-right 102 -shr 1 5151

Operatory bitowe działają w formacie binarnym wartości.Bitwise operators act on the binary format of a value. Na przykład struktura bitowa dla liczby 10 to 00001010 (w oparciu o 1 bajt), a struktura bitowa dla liczby 3 to 00000011.For example, the bit structure for the number 10 is 00001010 (based on 1 byte), and the bit structure for the number 3 is 00000011. W przypadku używania operatora bitowego do porównywania od 10 do 3, poszczególne bity w każdym bajcie są porównywane.When you use a bitwise operator to compare 10 to 3, the individual bits in each byte are compared.

W przypadku operacji bitowej i bit wynikający jest ustawiony na wartość 1 tylko wtedy, gdy oba bity wejściowe są 1.In a bitwise AND operation, the resulting bit is set to 1 only when both input bits are 1.

1010      (10)
0011      ( 3)
--------------  bAND
0010      ( 2)

W przypadku operacji bitowego lub (włącznego) bit wynikający z tego jest ustawiony na 1, gdy albo oba bity wejściowe są 1.In a bitwise OR (inclusive) operation, the resulting bit is set to 1 when either or both input bits are 1. Bit wynikający jest ustawiony na 0 tylko wtedy, gdy oba bity wejściowe są ustawione na 0.The resulting bit is set to 0 only when both input bits are set to 0.

1010      (10)
0011      ( 3)
--------------  bOR (inclusive)
1011      (11)

W przypadku operacji bitowej lub (wyłącznej) bit wynikający jest ustawiony na 1 tylko wtedy, gdy jeden bit wejściowy jest 1.In a bitwise OR (exclusive) operation, the resulting bit is set to 1 only when one input bit is 1.

1010      (10)
0011      ( 3)
--------------  bXOR (exclusive)
1001      ( 9)

Operator NOT bitowy jest operatorem jednoargumentowym, który tworzy binarne uzupełnienie wartości.The bitwise NOT operator is a unary operator that produces the binary complement of the value. Bit 1 jest ustawiony na 0, a bit 0 jest ustawiony na 1.A bit of 1 is set to 0 and a bit of 0 is set to 1.

Na przykład dopełnienie binarne 0 to-1, Maksymalna liczba całkowita bez znaku (0xffffffff), a uzupełnienie binarne-1 to 0.For example, the binary complement of 0 is -1, the maximum unsigned integer (0xffffffff), and the binary complement of -1 is 0.

-bNot 10
-11
0000 0000 0000 1010  (10)
------------------------- bNOT
1111 1111 1111 0101  (-11, xfffffff5)

W przypadku operacji przesunięcia bitowego w lewo wszystkie bity są przenoszone w lewo, gdzie "n" jest wartością argumentu z prawej strony.In a bitwise shift-left operation, all bits are moved "n" places to the left, where "n" is the value of the right operand. Wartość zerowa jest wstawiana w tym miejscu.A zero is inserted in the ones place.

Gdy argument operacji po lewej stronie jest liczbą całkowitą (32-bitową), mniejsze 5 bitów argumentu z prawej strony określają, ile bitów z lewego operandu są przesunięte.When the left operand is an Integer (32-bit) value, the lower 5 bits of the right operand determine how many bits of the left operand are shifted.

Gdy argument operacji po lewej stronie ma wartość Long (64-bitową), Dolna 6 bitów z prawego operandu decyduje o liczbie bitów argumentu z lewej strony.When the left operand is a Long (64-bit) value, the lower 6 bits of the right operand determine how many bits of the left operand are shifted.

WyrażenieExpression WynikResult Wynik binarnyBinary Result
21 -shl 0 2121 0001 01010001 0101
21 -shl 1 4242 0010 10100010 1010
21 -shl 2 8484 0101 01000101 0100

W bitowej operacji przesunięcia w prawo wszystkie bity są przenoszone w prawo, gdzie "n" jest określony przez prawy operand.In a bitwise shift-right operation, all bits are moved "n" places to the right, where "n" is specified by the right operand. Operator przesunięcia w prawo (-SHR) wstawia zero w miejscu od lewej strony, gdy przesuwa wartość dodatnią lub bez znaku w prawo.The shift-right operator (-shr) inserts a zero in the left-most place when shifting a positive or unsigned value to the right.

Gdy argument operacji po lewej stronie jest liczbą całkowitą (32-bitową), mniejsze 5 bitów argumentu z prawej strony określają, ile bitów z lewego operandu są przesunięte.When the left operand is an Integer (32-bit) value, the lower 5 bits of the right operand determine how many bits of the left operand are shifted.

Gdy argument operacji po lewej stronie ma wartość Long (64-bitową), Dolna 6 bitów z prawego operandu decyduje o liczbie bitów argumentu z lewej strony.When the left operand is a Long (64-bit) value, the lower 6 bits of the right operand determine how many bits of the left operand are shifted.

WyrażenieExpression WynikResult BinarneBinary HexHex
21 -shr 0 2121 0001 01010001 0101 0x150x15
21 -shr 1 1010 0000 10100000 1010 0x0A0x0A
21 -shr 2 55 0000 01010000 0101 0x050x05
21 -shr 31 00 0000 00000000 0000 0x000x00
21 -shr 32 2121 0001 01010001 0101 0x150x15
21 -shr 64 2121 0001 01010001 0101 0x150x15
21 -shr 65 1010 0000 10100000 1010 0x0A0x0A
21 -shr 66 55 0000 01010000 0101 0x050x05
[int]::MaxValue -shr 1 10737418231073741823 0x3FFFFFFF0x3FFFFFFF
[int]::MinValue -shr 1 -1073741824-1073741824 0xC00000000xC0000000
-1 -shr 1 -1-1 0xFFFFFFFF0xFFFFFFFF

ZOBACZ RÓWNIEŻSEE ALSO