Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Integer — Visual Basic

  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 2Β ΠΌΠΈΠ½

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ 32-разрядныС (4-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅) Ρ†Π΅Π»Ρ‹Π΅ числа со Π·Π½Π°ΠΊΠΎΠΌ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ -2Β 147Β 483Β 648 Π΄ΠΎ 2Β 147Β 483Β 647.Holds signed 32-bit (4-byte) integers that range in value from -2,147,483,648 through 2,147,483,647.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈRemarks

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Integer обСспСчиваСт ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° 32-разрядных процСссорах.The Integer data type provides optimal performance on a 32-bit processor. Π”Ρ€ΡƒΠ³ΠΈΠ΅ цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² памяти с Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΠΉ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒΡŽ.The other integral types are slower to load and store from and to memory.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Ρ‚ΠΈΠΏΠ° IntegerΒ β€” 0.The default value of Integer is 0.

ΠŸΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Π½ΠΈΡ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ²Literal assignments

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Integer ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π½Π°Π·Π½Π°Ρ‡ΠΈΠ² Π΅ΠΉ дСсятичный Π»ΠΈΡ‚Π΅Ρ€Π°Π», ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π», Π’ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΈΠ»ΠΈ (начиная с Visual Basic 2017) Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π».You can declare and initialize an Integer variable by assigning it a decimal literal, a hexadecimal literal, an octal literal, or (starting with Visual Basic 2017) a binary literal. Если цСлочислСнный Π»ΠΈΡ‚Π΅Ρ€Π°Π» Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Integer (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ссли ΠΎΠ½ мСньшС Int32.MinValue ΠΈΠ»ΠΈ большС Int32.MaxValue), Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка компиляции.If the integer literal is outside the range of

Integer (that is, if it is less than Int32.MinValue or greater than Int32.MaxValue, a compilation error occurs.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ†Π΅Π»Ρ‹Π΅ числа, Ρ€Π°Π²Π½Ρ‹Π΅ 90Β 946 ΠΈ прСдставлСнныС Π² Π²ΠΈΠ΄Π΅ дСсятичного, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°, Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ значСниям Integer.In the following example, integers equal to 90,946 that are represented as decimal, hexadecimal, and binary literals are assigned to Integer values.

Dim intValue1 As Integer = 90946
Console.WriteLine(intValue1)
Dim intValue2 As Integer = &h26342
Console.WriteLine(intValue2)

Dim intValue3 As Integer = &B0001_0110_0011_0100_0010
Console.WriteLine(intValue3)
' The example displays the following output:
'          90946
'          90946
'          90946

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прСфикс &h ΠΈΠ»ΠΈ &H , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π», прСфикс &b ΠΈΠ»ΠΈ &B ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π», Π° Ρ‚Π°ΠΊΠΆΠ΅ прСфикс &o ΠΈΠ»ΠΈ &O ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Π’ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π».You use the prefix &h or &H to denote a hexadecimal literal, the prefix &b or &B to denote a binary literal, and the prefix

&o or &O to denote an octal literal. Π£ дСсятичных Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² прСфиксов Π½Π΅Ρ‚.Decimal literals have no prefix.

Начиная с Visual Basic 2017, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ подчСркивания () Π² _ качСствС раздСлитСля Ρ†ΠΈΡ„Ρ€, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.Starting with Visual Basic 2017, you can also use the underscore character, _, as a digit separator to enhance readability, as the following example shows.

Dim intValue1 As Integer = 90_946
Console.WriteLine(intValue1)

Dim intValue2 As Integer = &H0001_6342
Console.WriteLine(intValue2)

Dim intValue3 As Integer = &B0001_0110_0011_0100_0010
Console.WriteLine(intValue3)
' The example displays the following output:
'          90946
'          90946
'          90946

Начиная с Visual Basic 15,5, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ подчСркивания () Π² _ качСствС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ раздСлитСля ΠΌΠ΅ΠΆΠ΄Ρƒ прСфиксом ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌΠΈ, Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ.Starting with Visual Basic 15.5, you can also use the underscore character (_) as a leading separator between the prefix and the hexadecimal, binary, or octal digits. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:For example:

Dim number As Integer = &H_C305_F860

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ подчСркивания Π² качСствС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ раздСлитСля, Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Visual Basic (*.vbproj) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт:To use the underscore character as a leading separator, you must add the following element to your Visual Basic project (*.vbproj) file:

<PropertyGroup>
  <LangVersion>15.5</LangVersion>
</PropertyGroup>

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см.For more information see setting the Visual Basic language version.

ЧисловыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ I символ Ρ‚ΠΈΠΏΠ° для обозначСния Integer Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.Numeric literals can also include the I type character to denote the Integer data type, as the following example shows.

Dim number = &H_035826I

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽProgramming tips

  • Вопросы взаимодСйствия.Interop Considerations. ΠŸΡ€ΠΈ Π²Π·Π°ΠΈΠΌΠΎΡ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ для .NET Framework, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ автоматизация ΠΈΠ»ΠΈ COM-ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Integer Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдах ΡˆΠΈΡ€ΠΈΠ½Π° Π΄Π°Π½Π½Ρ‹Ρ… (16 Π±ΠΈΡ‚) отличаСтся.If you are interfacing with components not written for the .NET Framework, such as Automation or COM objects, remember that Integer has a different data width (16 bits) in other environments. ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ 16-разрядного Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Visual Basic слСдуСт ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Short, Π° Π½Π΅ ΠΊΠ°ΠΊ

    Integer.If you are passing a 16-bit argument to such a component, declare it as Short instead of Integer in your new Visual Basic code.

  • Π Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΠ΅.Widening. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Integer ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ Π΄ΠΎ Long, Decimal, Single ΠΈΠ»ΠΈ Double.The Integer data type widens to Long, Decimal, Single, or Double. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΈΠΏ Integer ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² любой ΠΈΠ· этих Ρ‚ΠΈΠΏΠΎΠ² Π±Π΅Π· возникновСния ошибки System.OverflowException.This means you can convert Integer

    to any one of these types without encountering a System.OverflowException error.

  • Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Ρ‚ΠΈΠΏΠ°.Type Characters. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΊ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρƒ символа Ρ‚ΠΈΠΏΠ° Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° I производится ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° ΠΊ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ… Integer.Appending the literal type character I to a literal forces it to the Integer data type. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ символа ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Ρ‚ΠΈΠΏΠ° % ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ производится ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ этого ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΊ Ρ‚ΠΈΠΏΡƒ Integer.Appending the identifier type character % to any identifier forces it to Integer.

  • Π’ΠΈΠΏ Framework.Framework Type. Π’ .NET Framework Π΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ соотвСтствуСт структурС System.Int32.The corresponding type in the .NET Framework is the System.Int32 structure.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Range

ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ цСлочислСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π»Π΅ΠΆΠ°Ρ‰Π΅Π΅ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка.If you try to set a variable of an integral type to a number outside the range for that type, an error occurs. ΠŸΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°Π΄Π°Ρ‚ΡŒ Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ½ΠΎ округляСтся Π²Π²Π΅Ρ€Ρ… ΠΈΠ»ΠΈ Π²Π½ΠΈΠ· Π΄ΠΎ блиТайшСго Ρ†Π΅Π»ΠΎΠ³ΠΎ значСния.If you try to set it to a fraction, the number is rounded up or down to the nearest integer value. Если число находится Ρ‚ΠΎΡ‡Π½ΠΎ посСрСдинС ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ округляСтся Π΄ΠΎ блиТайшСго Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ.If the number is equally close to two integer values, the value is rounded to the nearest even integer. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ошибки округлСния, происходящиС ΠΎΡ‚ постоянного округлСния срСднСго значСния Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.This behavior minimizes rounding errors that result from consistently rounding a midpoint value in a single direction. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ округлСния.The following code shows examples of rounding.

' The valid range of an Integer variable is -2147483648 through +2147483647.  
Dim k As Integer  
' The following statement causes an error because the value is too large.  
k = 2147483648  
' The following statement sets k to 6.  
k = 5.9  
' The following statement sets k to 4  
k = 4.5  
' The following statement sets k to 6  
' Note, Visual Basic uses banker’s rounding (toward nearest even number)  
k = 5.5  

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π΄Π΅Π»See also

ЦСлочислСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² C++: short, int ΠΈ long | Π£Ρ€ΠΎΠΊΠΈ Π‘++

  Обновл. 9 Июл 2020  | 

На этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ рассмотрим цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈΡ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ дСлСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: Ρ‡Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.

ЦСлочислСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ЦСлочислСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… β€” это Ρ‚ΠΈΠΏ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа (Π±Π΅Π· Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: -2, -1, 0, 1, 2). Π’ языкС C++ Π΅ΡΡ‚ΡŒ 5 основных цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ², доступных для использования:

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡΠ’ΠΈΠΏΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…char1 Π±Π°ΠΉΡ‚
ЦСлочислСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…short2 Π±Π°ΠΉΡ‚Π°
int2 Π±Π°ΠΉΡ‚Π° (Π½ΠΎ Ρ‡Π°Ρ‰Π΅ всСго 4 Π±Π°ΠΉΡ‚Π°)
long4 Π±Π°ΠΉΡ‚Π°
long long8 Π±Π°ΠΉΡ‚

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π’ΠΈΠΏ char β€” это особый случай: ΠΎΠ½ являСтся ΠΊΠ°ΠΊ цСлочислСнным, Ρ‚Π°ΠΊ ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Об этом Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠΊΠΎΠ².

ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ цСлочислСнными Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, пСрСчислСнными Π²Ρ‹ΡˆΠ΅, являСтся ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‡Π΅ΠΌ ΠΎΠ½ большС, Ρ‚Π΅ΠΌ большС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ смоТСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ пСрСмСнная этого Ρ‚ΠΈΠΏΠ°.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ цСлочислСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ происходит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

char c; short int si; // допустимо short s; // ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ int i; long int li; // допустимо long l; // ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ long long int lli; // допустимо long long ll; // ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅

char c;

short int si; // допустимо

short s;Β Β Β Β Β Β // ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅

int i;

long int li; // допустимо

long l;Β Β Β Β Β Β // ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅

long long int lli; // допустимо

long long ll;Β Β Β Β Β Β // ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅

Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½Ρ‹Π΅ названия short int,Β long int ΠΈ long long int ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ, ΠΈΡ… сокращСнныС вСрсии (Π±Π΅Π· int) Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ для использования. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ постоянноС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ int затрудняСт Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° (Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ).

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Π·Π½Π°ΠΊ цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

Как Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΡƒΡ€ΠΎΠΊΠ°, пСрСмСнная с n-Π½Ρ‹ΠΌ количСством Π±ΠΈΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 2nΒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Но Ρ‡Ρ‚ΠΎ это Π·Π° значСния? Π­Ρ‚ΠΎ значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ β€” это значСния ΠΎΡ‚ ΠΈ Π΄ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ цСлочислСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ опрСдСляСтся двумя Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°ΠΌΠΈ: Π΅Ρ‘ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ (измСряСтся Π² Π±ΠΈΡ‚Π°Ρ…) ΠΈ Π΅Ρ‘ Π·Π½Π°ΠΊΠΎΠΌ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ signed ΠΈΠ»ΠΈ unsigned).

ЦСлочислСнный Ρ‚ΠΈΠΏ signed (со Π·Π½Π°ΠΊΠΎΠΌ) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ signed, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово signed:

signed char c; signed short s; signed int i; signed long l; signed long long ll;

signed char c;

signed short s;

signed int i;

signed long l;

signed long long ll;

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово signed ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

1-байтовая цСлочислСнная пСрСмСнная со Π·Π½Π°ΠΊΠΎΠΌ (signed) ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‚ -128 Π΄ΠΎ 127, Ρ‚.Π΅. любоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ -128 Π΄ΠΎ 127 (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ) ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Π½Π΅ΠΉ бСзопасно.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ часто встрСчаСтся ΠΏΡ€ΠΈ использовании ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для хранСния количСства ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Ρ‡Π΅Π³ΠΎ-Π»ΠΈΠ±ΠΎ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ваш рост ΠΈΠ»ΠΈ вСс Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ).

ЦСлочислСнный Ρ‚ΠΈΠΏ unsigned (Π±Π΅Π· Π·Π½Π°ΠΊΠ°) ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΊΠ°ΠΊ unsigned, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово unsigned:

unsigned char c; unsigned short s; unsigned int i; unsigned long l; unsigned long long ll;

unsigned char c;

unsigned short s;

unsigned int i;

unsigned long l;

unsigned long long ll;

1-байтовая цСлочислСнная пСрСмСнная Π±Π΅Π· Π·Π½Π°ΠΊΠ° (unsigned) ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‚ 0 Π΄ΠΎ 255.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, объявлСниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ unsigned ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π½Π΅ смоТСт ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ числа (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅).

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ поняли Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ signed ΠΈ unsigned, Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…:

Π Π°Π·ΠΌΠ΅Ρ€/Π’ΠΈΠΏΠ”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
1 Π±Π°ΠΉΡ‚ signedΠΎΡ‚ -128 Π΄ΠΎ 127
1 Π±Π°ΠΉΡ‚ unsignedΠΎΡ‚ 0 Π΄ΠΎ 255
2 Π±Π°ΠΉΡ‚Π° signedΠΎΡ‚ -32 768 Π΄ΠΎ 32 767
2 Π±Π°ΠΉΡ‚Π° unsignedΠΎΡ‚ 0 Π΄ΠΎ 65 535
4 Π±Π°ΠΉΡ‚Π° signedΠΎΡ‚ -2 147 483 648 Π΄ΠΎ 2 147 483 647
4 Π±Π°ΠΉΡ‚Π° unsignedΠΎΡ‚ 0 Π΄ΠΎ 4 294 967 295
8 Π±Π°ΠΉΡ‚ΠΎΠ² signedΠΎΡ‚ -9 223 372 036 854 775 808 Π΄ΠΎ 9 223 372 036 854 775 807
8 Π±Π°ΠΉΡ‚ΠΎΠ² unsignedΠΎΡ‚ 0 Π΄ΠΎ 18 446 744 073 709 551 615

Для ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠ²: ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ signed с n-Π½Ρ‹ΠΌ количСством Π±ΠΈΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ -(2n-1) Π΄ΠΎ 2n-1-1. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ unsigned с n-Π½Ρ‹ΠΌ количСством Π±ΠΈΡ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ 0 Π΄ΠΎ (2n)-1.

Для Π½Π΅ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠΎΠ²: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ πŸ™‚

ΠΠ°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡƒΡ‚Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ signed ΠΈ unsigned ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ. Но Π΅ΡΡ‚ΡŒ простой способ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΈΡ… различия. Π§Π΅ΠΌ отличаСтся ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ число ΠΎΡ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ? ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ! ΠœΠΈΠ½ΡƒΡΠΎΠΌ спСрСди. Если минуса Π½Π΅Ρ‚, Π·Π½Π°Ρ‡ΠΈΡ‚ число β€” ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, цСлочислСнный Ρ‚ΠΈΠΏ со Π·Π½Π°ΠΊΠΎΠΌ (signed) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ минус ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‚.Π΅. числа ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. ЦСлочислСнный Ρ‚ΠΈΠΏ Π±Π΅Π· Π·Π½Π°ΠΊΠ° (unsigned) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ минус спСрСди отсутствуСт, Ρ‚.Π΅. числа ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ.

Π§Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: signed ΠΈΠ»ΠΈ unsigned?

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΌΡ‹ объявим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π±Π΅Π· указания signed ΠΈΠ»ΠΈ unsigned?

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡΠ’ΠΈΠΏΠŸΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…charsigned ΠΈΠ»ΠΈ unsigned (Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв signed)
ЦСлочислСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…shortsigned
intsigned
longsigned
long longsigned

ВсС цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΡ€ΠΎΠΌΠ΅ char, ΡΠ²Π»ΡΡŽΡ‚ΡΡ signed ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π’ΠΈΠΏ char ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°ΠΊ signed, Ρ‚Π°ΠΊ ΠΈ unsigned (Π½ΠΎ, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, signed).

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово signed Π½Π΅ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ (ΠΎΠ½ΠΎ ΠΈ Ρ‚Π°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΈΠ·Π±Π΅Π³Π°ΡŽΡ‚ использования цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² unsigned, Ссли Π² этом Π½Π΅Ρ‚ особой надобности, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈΒ unsigned ошибок, ΠΏΠΎ статистикС, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ большС, Π½Π΅ΠΆΠ΅Π»ΠΈ с ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ signed.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ signed, вмСсто unsigned.

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅

Вопрос: Β«Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΌΡ‹ попытаСмся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ находится Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…?Β». ΠžΡ‚Π²Π΅Ρ‚: Β«ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅Β».

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ (Π°Π½Π³Π». Β«overflowΒ») случаСтся ΠΏΡ€ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π±ΠΈΡ‚ ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ достаточно памяти для ΠΈΡ… хранСния.

На ΡƒΡ€ΠΎΠΊΠ΅ β„–28 ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ хранятся Π² Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΌ (Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ) Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±ΠΈΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… значСния (0 ΠΈΠ»ΠΈ 1). Π’ΠΎΡ‚ ΠΊΠ°ΠΊ выглядит Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ чисСл ΠΎΡ‚ 0 Π΄ΠΎ 15 Π² дСсятичной ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмах:

ДСсятичная систСмаДвоичная систСма
00
11
210
311
4100
5101
6110
7111
81000
91001
101010
111011
121100
131101
141110
151111

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Π΅ΠΌ большС число, Ρ‚Π΅ΠΌ большС Π΅ΠΌΡƒ трСбуСтся Π±ΠΈΡ‚. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ наши ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ фиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€, Ρ‚ΠΎ Π½Π° Π½ΠΈΡ… Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ ограничСния Π½Π° количСство Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ пСрСполнСния

Рассмотрим ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ unsigned, которая состоит ΠΈΠ· 4-Ρ… Π±ΠΈΡ‚. Π›ΡŽΠ±ΠΎΠ΅ ΠΈΠ· Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… чисСл, пСрСчислСнных Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π²Ρ‹ΡˆΠ΅, помСстится Π²Π½ΡƒΡ‚Ρ€ΠΈ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

«Но Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΠΌΡ‹ попытаСмся ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС 4-Ρ… Π±ΠΈΡ‚?Β». ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ! ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Наша пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 4 Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… (Ρ‚Π΅, Ρ‡Ρ‚ΠΎ справа) Π±ΠΈΡ‚Π°, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ β€” ΠΏΠΎΡ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ.

НапримСр, Ссли ΠΌΡ‹ попытаСмся ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ число 21 Π² Π½Π°ΡˆΡƒ 4-Π±ΠΈΡ‚Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ:

ДСсятичная систСмаДвоичная систСма
2110101

Число 21 Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 5 Π±ΠΈΡ‚ (10101). 4 Π±ΠΈΡ‚Π° справа (0101) помСстятся Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π° ΠΊΡ€Π°ΠΉΠ½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ Π±ΠΈΡ‚ (1) просто потСряСтся. Π’.Π΅. наша пСрСмСнная Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ 0101, Ρ‡Ρ‚ΠΎ Ρ€Π°Π²Π½ΠΎ 101 (Π½ΡƒΠ»ΡŒ спСрСди Π½Π΅ считаСтся), Π° это ΡƒΠΆΠ΅ число 5, Π° Π½Π΅ 21.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: О ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ чисСл ΠΈΠ· Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмы Π² Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠΊ, Π³Π΄Π΅ ΠΌΡ‹ всё Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ рассмотрим ΠΈ обсудим.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² ΠΊΠΎΠ΄Π΅ (Ρ‚ΠΈΠΏ short Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 16 Π±ΠΈΡ‚):

#include <iostream> int main() { unsigned short x = 65535; // наибольшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 16-битная unsigned пСрСмСнная std::cout << «x was: » << x << std::endl; x = x + 1; // 65536 — это число большС максимально допустимого числа ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ пСрСмСннная x Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 17 Π±ΠΈΡ‚ std::cout << «x is now: » << x << std::endl; return 0; }

#include <iostream>

int main()

{

Β Β Β Β unsigned short x = 65535; // наибольшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 16-битная unsigned пСрСмСнная

Β Β Β Β std::cout << «x was: » << x << std::endl;

Β Β Β Β x = x + 1; // 65536 — это число большС максимально допустимого числа ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Ρ‘Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ пСрСмСннная x Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 17 Π±ΠΈΡ‚

Β Β Β Β std::cout << «x is now: » << x << std::endl;

Β Β Β Β return 0;

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

x was: 65535
x is now: 0

Π§Ρ‚ΠΎ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ? ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ xΒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ большС, Ρ‡Π΅ΠΌ ΠΎΠ½Π° способна Π² сСбС Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.

Для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Π·Π½Π°Ρ‚ΡŒ большС: Число 65 535 Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния прСдставлСно ΠΊΠ°ΠΊ 1111 1111 1111 1111. 65 535 β€” это наибольшСС число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 2-байтовая (16 Π±ΠΈΡ‚) цСлочислСнная пСрСмСнная Π±Π΅Π· Π·Π½Π°ΠΊΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это число ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ всС 16 Π±ΠΈΡ‚. Когда ΠΌΡ‹ добавляСм 1, Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ число 65 536. Число 65 536 прСдставлСно Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС ΠΊΠ°ΠΊ 1 0000 0000 0000 0000, ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 17 Π±ΠΈΡ‚! Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, самый Π³Π»Π°Π²Π½Ρ‹ΠΉ Π±ΠΈΡ‚ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ являСтся 1) тСряСтся, Π° всС 16 Π±ΠΈΡ‚ справа β€” ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ. ΠšΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΡ 0000 0000 0000 0000 соотвСтствуСт дСсятичному 0, Ρ‡Ρ‚ΠΎ ΠΈ являСтся нашим Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ.

Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, использовав число мСньшС минимального ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

#include <iostream> int main() { unsigned short x = 0; // наимСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ 2-байтовая unsigned пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ std::cout << «x was: » << x << std::endl; x = x — 1; // ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅! std::cout << «x is now: » << x << std::endl; return 0; }

#include <iostream>

int main()

{

Β Β Β Β unsigned short x = 0; // наимСньшСС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ 2-байтовая unsigned пСрСмСнная ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ

Β Β Β Β std::cout << «x was: » << x << std::endl;

Β Β Β Β x = x — 1; // ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅!

Β Β Β Β std::cout << «x is now: » << x << std::endl;

Β Β Β Β return 0;

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

x was: 0
x is now: 65535

ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π° это Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ привСтствуСтся. Если Π΅ΡΡ‚ΡŒ Ρ…ΠΎΡ‚ΡŒ малСйшСС ΠΏΠΎΠ΄ΠΎΠ·Ρ€Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ находится Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… побольшС!

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ: Никогда Π½Π΅ допускайтС возникновСния пСрСполнСния Π² Π²Π°ΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…!

Π”Π΅Π»Π΅Π½ΠΈΠ΅ цСлочислСнных ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’ языкС C++ ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π΄Π²ΡƒΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл, Π³Π΄Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число, всё довольно прСдсказуСмо:

#include <iostream> int main() { std::cout << 20 / 4 << std::endl; return 0; }

#include <iostream>

int main()

{

Β Β Β Β std::cout << 20 / 4 << std::endl;

Β Β Β Β return 0;

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

5

Но Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ дСлСния Π΄Π²ΡƒΡ… Ρ†Π΅Π»Ρ‹Ρ… чисСл ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ число? НапримСр:

#include <iostream> int main() { std::cout << 8 / 5 << std::endl; return 0; }

#include <iostream>

int main()

{

Β Β Β Β std::cout << 8 / 5 << std::endl;

Β Β Β Β return 0;

}

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚:

1

Π’ языкС C++ ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ†Π΅Π»Ρ‹Ρ… чисСл Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ всСгда Π±ΡƒΠ΄Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число. А Ρ‚Π°ΠΊΠΈΠ΅ числа Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Ρ€ΠΎΠ±ΡŒ (ΠΎΠ½Π° просто отбрасываСтся, Π½Π΅ округляСтся!).

Рассмотрим Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹ΡˆΠ΅: 8 / 5 = 1.6. Но, ΠΊΠ°ΠΊ ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅ΠΌ, ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ†Π΅Π»Ρ‹Ρ… чисСл, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, дробная Ρ‡Π°ΡΡ‚ΡŒ (0.6) значСния отбрасываСтся ΠΈ остаСтся 1.

ΠŸΡ€Π°Π²ΠΈΠ»ΠΎ: Π‘ΡƒΠ΄ΡŒΡ‚Π΅ остороТны ΠΏΡ€ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠΈ Ρ†Π΅Π»Ρ‹Ρ… чисСл, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ любая дробная Ρ‡Π°ΡΡ‚ΡŒ всСгда отбрасываСтся.


ΠžΡ†Π΅Π½ΠΈΡ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ:

Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ°…

ΠŸΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях:

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Integer.

Π’ΠΈΠΏ INTEGER (Ρ†Π΅Π»Ρ‹ΠΉ). Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ прСдставляСт мноТСство Ρ†Π΅Π»Ρ‹Ρ… чисСл Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΎΡ‚ -32768 Π΄ΠΎ 32767. Π’ памяти Π­Π’ΠœΒ  ΠΏΠΎΠ΄ Ρ†Π΅Π»ΠΎΠ΅ число отводится Π΄Π²Π° Π±Π°ΠΉΡ‚Π° (16 Π±ΠΈΡ‚).

ΠΠ°ΠΈΠ±ΠΎΠ»ΡŒΡˆΠ΅ΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа 32767 соотвСтствуСт стандартный ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ MAXINT, Π° Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠ΅ΠΌΡƒ – Π²Ρ‹paΠΆeΠ½ΠΈe NOT(MAXINT)=-(MAXINT+1), ΠΈΠ»ΠΈ число -32768. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π½Π°Π΄ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами: Β«+Β» слоТСниС, Β«-Β» Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, Β«*Β» ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, DIV — цСлочислСнноС Π΄Π΅Π»Π΅Π½ΠΈΠ΅, MOD — остаток ΠΎΡ‚ цСлочислСнного дСлСния, AND — арифмСтичСскоС ‘И’, OR — арифмСтичСскоС ‘Π˜Π›Π˜’, NOT – арифмСтичСскоС ΠΎΡ‚Ρ€ΠΈΡ†Π°Π½ΠΈΠ΅, XOR — ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ Π΄ΠΈΠ·ΡŠΡŽΠ½ΠΊΡ†ΠΈΡ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅1.

Π›ΡŽΠ±Π°Ρ ΠΈΠ· этих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΠ° Π½Π°Π΄ двумя Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами, Ссли Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ MAXINT (для умноТСния). Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, связанноС с ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ.
НапримСр: трСбуСтся Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 1000 * 4000 div 2000. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ умноТСния ΠΈ дСлСния ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ Π² порядкС записи арифмСтичСского выраТСния, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅, связанноС с ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. Π’Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· этой ситуации Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ порядка выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ умноТСния ΠΈ дСлСния, для Ρ‡Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки ==> 1000 * (4000 div 2000).
ΠŸΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Π½ΠΎ прСдставлСниС Ρ†Π΅Π»Ρ‹Ρ… чисСл Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния. Π€ΠΎΡ€ΠΌΠ° записи Ρ‚Π°ΠΊΠΈΡ… чисСл $Π₯, Π³Π΄Π΅ X — цСлая константа, Π° символ $ — ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: $57, $1FF. Напомним, Ρ‡Ρ‚ΠΎ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния Ρ†ΠΈΡ„Ρ€Ρ‹ 10, 11, 12, 13, 14 ΠΈ 15 Π·Π°ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ латинскими Π±ΡƒΠΊΠ²Π°ΠΌΠΈ А, Π’, Π‘, D, Π• ΠΈ F соотвСтствСнно.
ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΈΠΏΠ° INTEGER Π² языкС Pascal прСдусмотрСны ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ†Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… BYTE, SHORTINT, WORD ΠΈ LONGINT (Ρ‚Π°Π±Π»ΠΈΡ†Π° 2). ВсС эти Ρ‚ΠΈΠΏΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π½Π° мноТСствС Ρ†Π΅Π»Ρ‹Ρ… чисСл, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ объСмом Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΠΎΠΉ памяти.


ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ: Алфавит языка Pascal.
ОглавлСниС: Π›Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎ Pascal.
Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡ: Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Real.


Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π’ΠΈΠΏ Integer

К ΠΊΠΎΠ½Ρ†Ρƒ 2018 Π³ΠΎΠ΄Π° Π² ΠΌΠΈΡ€Π΅ насчитываСтся нСсколько сот языков программирования, мСньшая Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· Π½ΠΈΡ… прСдставлСна узкоспСциализированными языками, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ada (язык, ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Π½Ρ‹ΠΉ Π’Π’Π‘ БША для управлСния баллистичСскими Ρ€Π°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ) ΠΈΠ»ΠΈ Fortran, Π² основном примСняСмый Π² Π½Π°ΡƒΡ‡Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Но Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… общСдоступно для понимания ΠΈ изучСния ΠΈ находят ΡˆΠΈΡ€ΠΎΠΊΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅.

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ β€” это структурная ΠΈ размСрная характСристика Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ячСйки памяти, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Одним ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² являСтся Ρ‚ΠΈΠΏ integer (int). Π­Ρ‚ΠΎ цСлочислСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ячСйку Ρ‚ΠΈΠΏΠ° integer ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»ΠΎΠ΅ число (0, 1, 2, 256, 10000 ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅).

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π² ячСйку Ρ‚ΠΈΠΏΠ° integer, отличаСтся Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… языках программирования ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… процСссорах, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² языкС программирования Pascal составляСт ΠΎΡ‚ -32768 Π΄ΠΎ 32768. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Β«ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒΒ» Π΄Π°Π½Π½Ρ‹Π΅ большС ΠΈΠ»ΠΈ мСньшС Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ Β«ΠΎΡˆΠΈΠ±ΠΊΡƒ пСрСполнСния Π΄Π°Π½Π½Ρ‹Ρ…Β».

Π₯арактСристики Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… integer

Π’ 32-разрядных Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ… Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ ΠΎΡ‚ βˆ’2 147 483 648 (-231) Π΄ΠΎ 2 147 483 647 (231βˆ’1)

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ integer, Π±Π΅Π· Π·Π½Π°ΠΊΠΎΠ². НапримСр, unsigned int Π² C#. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ использованиС Ρ‚Π°ΠΊΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ ошибкам.

Π’Π°ΠΊΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΈ Ρ‚ΠΈΠΏΠ° integer, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:

  • short int — прСдусматриваСтся с Ρ†Π΅Π»ΡŒΡŽ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ количСство памяти, выдСляСмой ΠΏΠΎΠ΄ Π½ΡƒΠΆΠ΄Ρ‹ программиста.
  • long int — Π½Π°ΠΏΡ€ΠΎΡ‚ΠΈΠ², создан для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ боится, Ρ‡Ρ‚ΠΎ Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π΅ΡΡ‚ΡŒ риск «Π²Ρ‹Π»Π΅Ρ‚Π΅Ρ‚ΡŒ» Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ int ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ «ΠΎΡˆΠΈΠ±ΠΊΡƒ пСрСполнСния Π΄Π°Π½Π½Ρ‹Ρ…».

Π’ΠΈΠΏΡ‹ integer, real, dint (Π² языкС Pascal) относятся ΠΊ матСматичСским Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ матСматичСскиС дСйствия — слоТСниС, ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅, Π΄Π΅Π»Π΅Π½ΠΈΠ΅.

Π₯арактСристики Ρ‚ΠΈΠΏΠ° integer real

Для запоминания вСщСствСнного числа Π² ΠžΠ—Π£ отводится ΡˆΠ΅ΡΡ‚ΡŒ Π±Π°ΠΉΡ‚ΠΎΠ² памяти, поэтому расчСты всСгда Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ с ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠΉ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, зависящСй ΠΎΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° числа. ВСщСствСнныС Π΄Π°Π½Π½Ρ‹Π΅ хранятся ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² популярных языках программирования

Char β€” ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² сСбС 1 символ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ символов ASCII. Π—Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1 Π±Π°ΠΉΡ‚ ΠΈ интСрпрСтируСтся ΠΊΠ°ΠΊ символ ASCII.

String β€” строковый Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдставлСн массивом ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Ρ‚ΠΈΠΏΠ° char. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ возмоТности соврСмСнных языков ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Ρ‚ΡŒ самыС Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹Π΅ дСйствия Π½Π°Π΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ‚ΠΈΠΏΠ° string, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΡŽ (склСиваниС), ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк, Π·Π°ΠΌΠ΅Π½Ρƒ символов Π² строкС.

Boolean β€” логичСский Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅, Π²Ρ‹Ρ€Π°ΠΆΠ°ΡŽΡ‰ΠΈΠΉ 2 состояния. ΠžΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½, ΠΊΠΎΠ³Π΄Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 состояния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, которая Π±Ρ‹ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π»Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€Π°Π²Π΄Ρƒ ΠΈΠ»ΠΈ лоТь).

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²

Π―Π·Ρ‹ΠΊΠΈ программирования ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Β«ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒΒ» Ρ‚ΠΈΠΏΡ‹ Π΄Ρ€ΡƒΠ³ ΠΊ Π΄Ρ€ΡƒΠ³Ρƒ. НапримСр, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚ΠΈΠΏΠ° integer, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π² дальнСйшСм привСсти Π΅Π΅ ΠΊ Ρ‚ΠΈΠΏΡƒ double, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ компилятору ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Π΅ ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с Π½Π΅ΠΉ Π² дальнСйшСм ΠΊΠ°ΠΊ с числом с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

Но Π½Π΅ всС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊ просто ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ. НапримСр, ΠΌΡ‹ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ string ΠΊ integer, компилятор просто Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚ Π½Π°ΡˆΠΈΡ… дСйствий. Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ частныС случаи компиляторов ΠΈ языков программирования. НапримСр, Π² языкС Pascal нСльзя ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ integer ΠΊ integer real, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΈΠΏ real ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ дСлСния.

Π’ соврСмСнных языках, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ C#, Π½Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Ρ‡Π°Ρ‰Π΅ всСго программист ΠΌΠΎΠΆΠ΅Ρ‚ Π±Π΅Π·Π±ΠΎΠ»Π΅Π·Π½Π΅Π½Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ int. double, long int ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, Π² динамичСски Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках Π΄Π°ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ситуация, ΠΊΠΎΠ³Π΄Π° Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… char приводится ΠΊ int!

Π­Ρ‚ΠΎ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ компилятор, вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с символом, Π±Π΅Ρ€Π΅Ρ‚ Π΅Π³ΠΎ порядковый Π½ΠΎΠΌΠ΅Ρ€ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ASCII ΠΈ ΡƒΠΆΠ΅ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ для взаимодСйствия с int. Π’ языках со строгой Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ C++ ΠΈΠ»ΠΈ C#, это, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅, Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ.

Π­Ρ‚ΠΎ основныС Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ΅. Π’ соврСмСнных языках программирования ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ часто ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΡƒΠΆΠ΅ Π½Π΅ просто Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ мСсто Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти, Π° Ρ†Π΅Π»Ρ‹Π΅ Β«ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹Β» ΠΈΠ»ΠΈ «классы», Ρ‡Ρ‚ΠΎ сильно Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ возмоТности ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Π½ΠΈΠΌΠΈ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ хранятся Ρ‚Π°ΠΊΠΈΠ΅ слоТныС структуры, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ³Π»ΡƒΠ±ΠΈΡ‚ΡŒΡΡ Π² Ρ‚Π°ΠΊΡƒΡŽ Π½Π΅ΠΈΡΡ‡Π΅Ρ€ΠΏΠ°Π΅ΠΌΡƒΡŽ Ρ‚Π΅ΠΌΡƒ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, самый соврСмСнный инструмСнт для создания ΠΌΠΎΡ‰Π½Ρ‹Ρ…, Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹Ρ… ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π³ΠΎΠ΄Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π¦Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹

Π’ языкС Паскаль ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ².

Π’Π°Π±Π»ΠΈΡ†Π°. Π¦Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Pascal

Π’ΠΈΠΏΠ”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉΠžΡ‚Π²ΠΎΠ΄ΠΈΠΌΠ°Ρ ΠΏΠ°ΠΌΡΡ‚ΡŒ, Π² Π±Π°ΠΉΡ‚Π°Ρ…
shortint-128…1271
integer-32 768…32 7672
longint-2 147 483 648…2 147 483 6474
byte0…2551
word0…65 5352

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ значСния. Π’Π°ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π—Π΄Π΅ΡΡŒ a, b, c… — ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, integer – Ρ‚ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…. Вранслятор, встрСтив Ρ‚Π°ΠΊΠΎΠ΅ описаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… a, b, c, Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ эти ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ значСния ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚ соотвСтствСнно этому ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π°Π±Π»ΠΈΡ†Π°. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Ρ†Π΅Π»Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, Π΄Π°ΡŽΡ‰ΠΈΠ΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°

Π—Π½Π°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ
+Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅
Π’Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅
*Π£ΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅
divЦСлочислСнноС Π΄Π΅Π»Π΅Π½ΠΈΠ΅ (остаток отбрасываСтся). Π”Π΅Π»Π΅Π½ΠΈΠ΅ Π±Π΅Π· округлСния (цСлая Ρ‡Π°ΡΡ‚ΡŒ частного).
modΠ”Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŽ (Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ остатка ΠΎΡ‚ дСлСния). ΠžΡΡ‚Π°Ρ‚ΠΎΠΊ ΠΎΡ‚ дСлСния: a mod b = a – ((a div b) * b).

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ Π½Π΅ мСньшС минимального (ΠΊΡ€Π°ΠΉΠ½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ) ΠΈ Π½Π΅ большС максимального (ΠΊΡ€Π°ΠΉΠ½Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°. НапримСр, Π² ПаскалС сущСствуСт константа maxint, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ содСрТится максимально допустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для Ρ‚ΠΈΠΏΠ° integer. Π’ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ условия:
(a опСрация b) <= maxint,
a <= maxint, b <= maxint.

Над Ρ†Π΅Π»Ρ‹ΠΌΠΈ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ, допустимы ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ (сравнСния). Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ‚Π°ΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ относится ΠΊ Ρ‚ΠΈΠΏΡƒ boolean ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π΄Π²ΡƒΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ – Π»ΠΈΠ±ΠΎ true (истина), Π»ΠΈΠ±ΠΎ false (лоТь).

Π’Π°Π±Π»ΠΈΡ†Π°. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ

Π—Π½Π°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ
=Π Π°Π²Π½ΠΎ
<>НС Ρ€Π°Π²Π½ΠΎ
>=Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ
>Π‘ΠΎΠ»ΡŒΡˆΠ΅
<=МСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ
<МСньшС

Π¦Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ Π² качСствС фактичСских ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² рядом стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ языка программирования Pascal.

Π’Π°Π±Π»ΠΈΡ†Π°. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Pascal, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Π΅ ΠΊ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌ Ρ†Π΅Π»Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ²

ЀункцияВип Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния
abs(x)Π¦Π΅Π»Ρ‹ΠΉΠœΠΎΠ΄ΡƒΠ»ΡŒ x (Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Π°Ρ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° x)
sqr(x)Π¦Π΅Π»Ρ‹ΠΉΠšΠ²Π°Π΄Ρ€Π°Ρ‚ x
succ(x)Π¦Π΅Π»Ρ‹ΠΉΠ‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x (x+1)
pred(x)Π¦Π΅Π»Ρ‹ΠΉΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ x (x-1)
random(x)Π¦Π΅Π»Ρ‹ΠΉΠ‘Π»ΡƒΡ‡Π°ΠΉΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΈΠ· ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° 0..x-1.
sin(x)Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉΠ‘ΠΈΠ½ΡƒΡ x (ΡƒΠ³ΠΎΠ» Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ…)
cos(x)Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉΠšΠΎΡΠΈΠ½ΡƒΡ x (ΡƒΠ³ΠΎΠ» Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ…)
arctan(x)Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉΠΡ€ΠΊΡ‚Π°Π½Π³Π΅Π½Ρ x (ΡƒΠ³ΠΎΠ» Π² Ρ€Π°Π΄ΠΈΠ°Π½Π°Ρ…)
ln(x)Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉΠΠ°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ x
exp(x)Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉΠ­ΠΊΡΠΏΠΎΠ½Π΅Π½Ρ‚Π° x
sqrt(x)Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉΠšΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΈΠ· x
odd(x)ЛогичСскийЗначСниС true, Ссли x – Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ΅ число; false – Ссли Ρ‡Π΅Ρ‚Π½ΠΎΠ΅.

Ѐункция random Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ распрСдСлСнноС случайноС Ρ†Π΅Π»ΠΎΠ΅ число, Ссли Π΅ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Π½ Ρ†Π΅Π»Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚. ΠŸΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π΅ ΠΆΠ΅ значСния. Π’ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ этого слСдуСт Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Π±Π΅Π· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² randomize.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ inc ΠΈ dec ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ ΠΏΠΎ Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π΄Π²Π°, Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ увСличиваСтся (для inc) ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ (для dec) Π½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ, Ρ€Π°Π²Π½ΡƒΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. НапримСр, inc(x,2) Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ x+2. Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΠ΄ΠΈΠ½, Ρ‚ΠΎ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ увСличиваСтся (для inc) ΠΈΠ»ΠΈ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ (для dec) Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. НапримСр, dec(x) Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ x-1. (ВАКИΠ₯ ΠŸΠ ΠžΠ¦Π•Π”Π£Π  Π’Πž FREEPASCAL Π‘ΠšΠžΠ Π•Π• Π’Π‘Π•Π“Πž НЕВ.)

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² значСния вСщСствСнного Ρ‚ΠΈΠΏΠ°, Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ значСния Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°:
trunc(x) – отбрасываниС дСсятичных Π·Π½Π°ΠΊΠΎΠ² послС Ρ‚ΠΎΡ‡ΠΊΠΈ;
round(x) – ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ:
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1. ΠŸΡƒΡΡ‚ΡŒ a = 17, b = 5. Π’ΠΎΠ³Π΄Π° a div b Π΄Π°Π΅Ρ‚ 3, a mod b Π΄Π°Π΅Ρ‚ 2 (остаток ΠΎΡ‚ дСлСния), sqr(b) Π΄Π°Π΅Ρ‚ 25.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2. ΠŸΡƒΡΡ‚ΡŒ x = 4.7389. Π’ΠΎΠ³Π΄Π° trunc(x) Π΄Π°Π΅Ρ‚ 4, round(x) Π΄Π°Π΅Ρ‚ 5.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ 4 * 21 Π΄Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π° 4 * 21.0 – вСщСствСнного, Ρ‚.ΠΊ. ΠΎΠ΄ΠΈΠ½ ΠΈΠ· сомноТитСлСй вСщСствСнный.

Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΠΎ C#. ЦСлочислСнныС Ρ‚ΠΈΠΏΡ‹

  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 2Β ΠΌΠΈΠ½

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

ЦСлочислСнныС Ρ‚ΠΈΠΏΡ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ†Π΅Π»Ρ‹Π΅ числа.The integral numeric types represent integer numbers. ВсС цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.All integral numeric types are value types. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой простыС Ρ‚ΠΈΠΏΡ‹ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ.They are also simple types and can be initialized with literals. ВсС цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния ΠΈ равСнства.All integral numeric types support arithmetic, bitwise logical, comparison, and equality operators.

Π₯арактСристики цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ²Characteristics of the integral types

C# ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ цСлочислСнныС Ρ‚ΠΈΠΏΡ‹:C# supports the following predefined integral types:

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏ C#C# type/keywordΠ”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½RangeΠ Π°Π·ΠΌΠ΅Ρ€SizeΠ’ΠΈΠΏ .NET.NET type
sbyteΠžΡ‚ -128 Π΄ΠΎ 127-128 to 1278-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌSigned 8-bit integerSystem.SByte
byteΠžΡ‚ 0 Π΄ΠΎ 2550 to 2558-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ°Unsigned 8-bit integerSystem.Byte
shortΠžΡ‚ -32Β 768 Π΄ΠΎ 32Β 767-32,768 to 32,76716-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌSigned 16-bit integerSystem.Int16
ushortΠžΡ‚ 0 Π΄ΠΎ 65 5350 to 65,53516-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ°Unsigned 16-bit integerSystem.UInt16
intΠžΡ‚ -2Β 147Β 483Β 648 Π΄ΠΎ 2Β 147Β 483Β 647-2,147,483,648 to 2,147,483,64732-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌSigned 32-bit integerSystem.Int32
uintΠžΡ‚ 0 Π΄ΠΎ 4 294 967 2950 to 4,294,967,29532-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ°Unsigned 32-bit integerSystem.UInt32
longΠžΡ‚ -9Β 223Β 372Β 036Β 854Β 775Β 808 Π΄ΠΎ 9Β 223Β 372Β 036Β 854Β 775Β 807-9,223,372,036,854,775,808 to 9,223,372,036,854,775,80764-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌSigned 64-bit integerSystem.Int64
ulongΠžΡ‚ 0 Π΄ΠΎ 18 446 744 073 709 551 6150 to 18,446,744,073,709,551,61564-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ°Unsigned 64-bit integerSystem.UInt64

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова C# ΠΈΠ· ΠΊΡ€Π°ΠΉΠ½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ столбца являСтся псСвдонимом для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° .NET.In the preceding table, each C# type keyword from the leftmost column is an alias for the corresponding .NET type. Они взаимозамСняСмыС.They are interchangeable. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ объявлСния ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°:For example, the following declarations declare variables of the same type:

int a = 123;
System.Int32 b = 123;

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всС цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0.The default value of each integral type is zero, 0. ВсС цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ константы MinValue ΠΈ MaxValue с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈΡ‚ΠΎΠ³ΠΎΠ²Ρ‹ΠΌΠΈ значСниями этого Ρ‚ΠΈΠΏΠ°.Each of the integral types has the MinValue and MaxValue constants that provide the minimum and maximum value of that type.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ структуру System.Numerics.BigInteger, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌ Π±Π΅Π· Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†.Use the System.Numerics.BigInteger structure to represent a signed integer with no upper or lower bounds.

ЦСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹Integer literals

ЦСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ:Integer literals can be

  • дСсятичным числом: Π±Π΅Π· прСфикса;decimal: without any prefix
  • ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΌ числом: с прСфиксом 0x ΠΈΠ»ΠΈ 0X;hexadecimal: with the 0x or 0X prefix
  • Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ: с прСфиксом 0b ΠΈΠ»ΠΈ 0B (доступно Π² C#Β 7.0 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях).binary: with the 0b or 0B prefix (available in C# 7.0 and later)

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ….The following code demonstrates an example of each:

var decimalLiteral = 42;
var hexLiteral = 0x2A;
var binaryLiteral = 0b_0010_1010;

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ использованиС _ Π² качСствС Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ³ΠΎ раздСлитСля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поддСрТиваСтся, начиная с вСрсии C#Β 7.0.The preceding example also shows the use of _ as a digit separator, which is supported starting with C# 7.0. Π¦ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ со всСми Π²ΠΈΠ΄Π°ΠΌΠΈ числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ².You can use the digit separator with all kinds of numeric literals.

Π’ΠΈΠΏ цСлочислСнного Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° опрСдСляСтся Π΅Π³ΠΎ суффиксом ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:The type of an integer literal is determined by its suffix as follows:

  • Если Π»ΠΈΡ‚Π΅Ρ€Π°Π» Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ суффикса, Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: int, uint, long, ulong.If the literal has no suffix, its type is the first of the following types in which its value can be represented: int, uint, long, ulong.

  • Если Ρƒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π΅ΡΡ‚ΡŒ суффикс U ΠΈΠ»ΠΈ u, Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: uint, ulong.If the literal is suffixed by U or u, its type is the first of the following types in which its value can be represented: uint, ulong.

  • Если Ρƒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π΅ΡΡ‚ΡŒ суффикс L ΠΈΠ»ΠΈ l, Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: long, ulong.If the literal is suffixed by L or l, its type is the first of the following types in which its value can be represented: long, ulong.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    Π‘Ρ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ l ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС суффикса.You can use the lowercase letter l as a suffix. Однако ΠΏΡ€ΠΈ этом выдаСтся ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ компилятора, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΡƒΠΊΠ²Ρƒ l ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с Ρ†ΠΈΡ„Ρ€ΠΎΠΉ 1.However, this generates a compiler warning because the letter l can be confused with the digit 1. Для ясности ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ L.Use L for clarity.

  • Если Ρƒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π΅ΡΡ‚ΡŒ суффикс UL, Ul, uL, ul, LU, Lu, lU ΠΈΠ»ΠΈ lu, Π΅Π³ΠΎ Ρ‚ΠΈΠΏΒ β€” ulong.If the literal is suffixed by UL, Ul, uL, ul, LU, Lu, lU, or lu, its type is ulong.

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, прСдставлСнноС цСлочислСнным Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ UInt64.MaxValue, происходит ошибка компиляции CS1021.If the value represented by an integer literal exceeds UInt64.MaxValue, a compiler error CS1021 occurs.

Если ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ цСлочислСнного Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Β β€” int, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, прСдставлСнноС Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ, находится Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ нСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² sbyte, byte, short, ushort, uint ΠΈΠ»ΠΈ ulong:If the determined type of an integer literal is int and the value represented by the literal is within the range of the destination type, the value can be implicitly converted to sbyte, byte, short, ushort, uint, or ulong:

byte a = 17;
byte b = 300;   // CS0031: Constant value '300' cannot be converted to a 'byte'

Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка компилятора CS0031.As the preceding example shows, if the literal’s value is not within the range of the destination type, a compiler error CS0031 occurs.

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ для прСобразования значСния, прСдставлСнного цСлочислСнным Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ, Π² Ρ‚ΠΈΠΏ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°:You can also use a cast to convert the value represented by an integer literal to the type other than the determined type of the literal:

var signedByte = (sbyte)42;
var longVariable = (long)42;

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΡConversions

Π›ΡŽΠ±ΠΎΠΉ цСлочислСнный Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π² любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ цСлочислСнный Ρ‚ΠΈΠΏ.You can convert any integral numeric type to any other integral numeric type. Если Ρ†Π΅Π»Π΅Π²ΠΎΠΉ Ρ‚ΠΈΠΏ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС значСния исходного Ρ‚ΠΈΠΏΠ°, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ являСтся нСявным.If the destination type can store all values of the source type, the conversion is implicit. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ привСдСния для выполнСния явного прСобразования.Otherwise, you need to use a cast expression to perform an explicit conversion. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. ΡΡ‚Π°Ρ‚ΡŒΡŽ ВстроСнныС числовыС прСобразования.For more information, see Built-in numeric conversions.

БпСцификация языка C#C# language specification

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ… ΡΡ‚Π°Ρ‚ΡŒΠΈ БпСцификация языка C#:For more information, see the following sections of the C# language specification:

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅See also

Pascal. ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… — Pascal

ΠŸΡ€ΠΈ описании ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΅Π΅ Ρ‚ΠΈΠΏ. Π’ΠΈΠΏ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ описываСт Π½Π°Π±ΠΎΡ€ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΈ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π΄ Π½Π΅ΠΉ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹. ОписаниС Ρ‚ΠΈΠΏΠ° опрСдСляСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ.

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ дСлятся Π½Π° стандартныС (порядковыС) ΠΈ пСрСчисляСмыС (ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅).

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹

Π’ΡƒΡ€Π±ΠΎ-Паскаль ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ встроСнных стандартных Ρ‚ΠΈΠΏΠ°: integer (Ρ†Π΅Π»ΠΎΠ΅), real (вСщСствСнноС), boolean (логичСский) ΠΈ char (ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ).

ЦСлочислСнный Ρ‚ΠΈΠΏ (integer)

Π’ Π’ΡƒΡ€Π±ΠΎ-ПаскалС имССтся ΠΏΡΡ‚ΡŒ встроСнных цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ²: shortint (ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅), integer (Ρ†Π΅Π»ΠΎΠ΅), longint (Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅), byte (Π΄Π»ΠΈΠ½ΠΎΠΉ Π² Π±Π°ΠΉΡ‚) ΠΈ word (Π΄Π»ΠΈΠ½ΠΎΠΉ Π² слово). ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ подмноТСство Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΊΠ°ΠΊ это ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π’Π°Π±Π»ΠΈΡ†Π΅.

ВстроСнныС цСлочислСнныС Ρ‚ΠΈΠΏΡ‹.

Π’ΠΈΠΏ

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½

Π€ΠΎΡ€ΠΌΠ°Ρ‚

shortint

-128 ..+127

8 Π±ΠΈΡ‚ΠΎΠ² со Π·Π½Π°ΠΊΠΎΠΌ

integer

-32768 .. 32767

16 Π±ΠΈΡ‚ΠΎΠ² со Π·Π½Π°ΠΊΠΎΠΌ

longint

-2147483648 +2147483647

32 Π±ΠΈΡ‚Π° со Π·Π½Π°ΠΊΠΎΠΌ

byte

0 .. 255

8 Π±ΠΈΡ‚ΠΎΠ² Π±Π΅Π· Π·Π½Π°ΠΊΠ°

word

0 .. 65535

16 Π±ΠΈΡ‚ΠΎΠ² Π±Π΅Π· Π·Π½Π°ΠΊΠ°

АрифмСтичСскиС дСйствия Π½Π°Π΄ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ цСлочислСнного Ρ‚ΠΈΠΏΠ° ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ΡΡ Π² соотвСтствии со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌΠΈ:

  1. Π’ΠΈΠΏ Ρ†Π΅Π»ΠΎΠΉ константы прСдставляСт собой встроСнный цСлочислСнный Ρ‚ΠΈΠΏ с наимСньшим Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этой Ρ†Π΅Π»ΠΎΠΉ константы.
  2. Π’ случаС Π±ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π΅ΠΉ Π΄Π²Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°), ΠΎΠ±Π° ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ ΠΊ ΠΈΡ… ΠΎΠ±Ρ‰Π΅ΠΌΡƒ Ρ‚ΠΈΠΏΡƒ ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°Π΄ Π½ΠΈΠΌΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ дСйствиС. ΠžΠ±Ρ‰ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ являСтся встроСнный цСлочислСнный Ρ‚ΠΈΠΏ с наимСньшим Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΠΌ всС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния ΠΎΠ±ΠΎΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ². НапримСр, ΠΎΠ±Ρ‰ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ для Ρ†Π΅Π»ΠΎΠ³ΠΎ ΠΈ Ρ†Π΅Π»ΠΎΠ³ΠΎ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² Π±Π°ΠΉΡ‚ являСтся Ρ†Π΅Π»ΠΎΠ΅, Π° ΠΎΠ±Ρ‰ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ для Ρ†Π΅Π»ΠΎΠ³ΠΎ ΠΈ Ρ†Π΅Π»ΠΎΠ³ΠΎ Π΄Π»ΠΈΠ½ΠΎΠΉ Π² слово являСтся Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅. ДСйствиС выполняСтся Π² соотвСтствии с Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈ Ρ‚ΠΈΠΏΠΎΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° являСтся ΠΎΠ±Ρ‰ΠΈΠΉ Ρ‚ΠΈΠΏ.
  3. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ справа Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ присваивания вычисляСтся нСзависимо ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ слСва.

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅ΠΌΡ‹Π΅ Π½Π°Π΄ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами:

β€œ+” — слоТСниС

β€œ-β€œ — Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅

β€œ*” — ΡƒΠΌΠ½ΠΎΠΆΠ΅Π½ΠΈΠ΅

SQR — Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚

DIV — послС дСлСния отбрасываСт Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ

MOD — ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ остатка послС дСлСния

ABS — ΠΌΠΎΠ΄ΡƒΠ»ΡŒ числа

RANDOM(X)-ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ случайного числа ΠΎΡ‚ 0 Π΄ΠΎ Π₯

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

Π°:=100; 
b:=60;
a DIV b Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ - 1
Π° MOD b Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ - 40

ΠžΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

var список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: Ρ‚ΠΈΠΏ;

НапримСр: var Π°,Ρ€,n:integer;

ВСщСствСнный Ρ‚ΠΈΠΏ(real)

К вСщСствСнному Ρ‚ΠΈΠΏΡƒ относится подмноТСство вСщСствСнных чисСл, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСны Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой с фиксированным числом Ρ†ΠΈΡ„Ρ€. Π—Π°ΠΏΠΈΡΡŒ значСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ значСния — m, b ΠΈ e — Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎ m*bΠ΅, Π³Π΄Π΅ b всСгда Ρ€Π°Π²Π΅Π½ 10, Π° m ΠΈ e ΡΠ²Π»ΡΡŽΡ‚ΡΡ цСлочислСнными значСниями Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ вСщСствСнного Ρ‚ΠΈΠΏΠ°. Π­Ρ‚ΠΈ значСния m ΠΈ e Π΄Π°Π»Π΅Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ вСщСствСнного Ρ‚ΠΈΠΏΠ°.

Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ ΠΏΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΎΠ² вСщСствСнных Ρ‚ΠΈΠΏΠΎΠ²: real, singlΠ΅, duble, exnende, comp. ВСщСствСнныС Ρ‚ΠΈΠΏΡ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ связанных с Π½ΠΈΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈ дСсятичныС Ρ†ΠΈΡ„Ρ€Ρ‹ для вСщСствСнных Ρ‚ΠΈΠΏΠΎΠ²

Π’ΠΈΠΏ

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½

Π¦ΠΈΡ„Ρ€Ρ‹

Real

Single

Duble

Extende

comp

2.9×10Π•-39 Π΄ΠΎ 1.7×10Π• 38

1.5×10Π•-45 Π΄ΠΎ 3.4×10Π• 38

5.0×10Π•-324 Π΄ΠΎ 1.7×10Π• 308

3.4×10Π•-493 Π΄ΠΎ 1.1×10Π• 403

-2Π• 63 Π΄ΠΎ 2Π• 63

ΠΎΡ‚ 11 Π΄ΠΎ 12

ΠΎΡ‚ 7 Π΄ΠΎ 8

ΠΎΡ‚ 15 Π΄ΠΎ 16

ΠΎΡ‚ 19 Π΄ΠΎ 20

ΠΎΡ‚ 19 Π΄ΠΎ 20

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ°Π΅ΠΌΡ‹Π΅ Π½Π°Π΄ вСщСствСнными числами:

  • ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ допустимыС для Ρ†Π΅Π»Ρ‹Ρ… чисСл.
  • SQRT(x)-ΠΊΠΎΡ€Π΅Π½ΡŒ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΈΠ· числа Ρ….
  • SIN(X), COS(X), ARCTAN(X).
  • LN(X)-Π½Π°Ρ‚ΡƒΡ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΎΠ³Π°Ρ€ΠΈΡ„ΠΌ.
  • EXP(X)-экспонСнта Π₯ (Π΅Ρ…).
  • EXP(X*LN(A))-Π²ΠΎΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒ (Ах).
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования Ρ‚ΠΈΠΏΠΎΠ²:
    • TRUNC(X)-отбрасываСт Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ;
    • ROUND(X)-ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅.
  • НСкоторыС ΠΏΡ€Π°Π²ΠΈΠ»Π° арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ:
    • Если Π² арифмСтичСском дСйствии Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ числа Ρ‚ΠΈΠΏΠ° real ΠΈ integer, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΈΠΏ real.
    • ВсС составныС части выраТСния Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ΄Π½Ρƒ строку.
    • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки.
    • НСльзя подряд ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΄Π²Π° арифмСтичСских Π·Π½Π°ΠΊΠ°.

ΠžΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ вСщСствСнного Ρ‚ΠΈΠΏΠ° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

var список ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: Ρ‚ΠΈΠΏ;

НапримСр:

var d,g,k:real;

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ(char)

K Ρ‚ΠΈΠΏΡƒ char относится любой символ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ Π² апострофы. Для прСдставлСния апострофа ΠΊΠ°ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ, Π½Π°Π΄ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² апостроф:’’’’.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ символ ΠΈΠΌΠ΅Π΅Ρ‚ свой ΠΊΠΎΠ΄ ΠΈ Π½ΠΎΠΌΠ΅Ρ€. ΠŸΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° Ρ†ΠΈΡ„Ρ€ 0,1..9 упорядочСны ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ. ΠŸΠΎΡ€ΡΠ΄ΠΊΠΎΠ²Ρ‹Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° Π±ΡƒΠΊΠ² Ρ‚Π°ΠΊΠΆΠ΅ упорядочСны ΠΏΠΎ Π²ΠΎΠ·Ρ€Π°ΡΡ‚Π°Π½ΠΈΡŽ, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

К ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ Π·Π½Π°ΠΊΠΈ сравнСния:

> , < , >=, <=, <> .

НапримСр: β€˜A’ < β€˜W’

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ:

  1. ORD(X) — опрСдСляСт порядковый Π½ΠΎΠΌΠ΅Ρ€ символа Π₯.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

    ord(β€˜a’)=97;
  2. CHR(X) — опрСдСляСт символ ΠΏΠΎ Π½ΠΎΠΌΠ΅Ρ€Ρƒ.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

    chr(97)=’a’;
  3. PRED(X) — Π²Ρ‹Π΄Π°Π΅Ρ‚ символ, стоящий ΠΏΠ΅Ρ€Π΅Π΄ символом Π₯.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

    pred(β€˜B’)=’A’;
  4. SUCC(X) — Π²Ρ‹Π΄Π°Π΅Ρ‚ символ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ послС символа Π₯.

    ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

    succ(β€˜A’)=’B’;

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°Π·Π²Π°Π½ Ρ‚Π°ΠΊ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ задаСтся Π² Π²ΠΈΠ΄Π΅ пСрСчислСния констант Π² строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ порядкС ΠΈ Π² строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ количСствС. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ состоит ΠΈΠ· списка констант. ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ этого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ любой ΠΈΠ· этих констант. ОписаниС пСрСчислимого Ρ‚ΠΈΠΏΠ° ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΈΠ΄:

Type <имя Ρ‚ΠΈΠΏΠ°>=(список констант);
Var <имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ>:<имя Ρ‚ΠΈΠΏΠ°>;
Β 

Π³Π΄Π΅ <список констант> — это особый Π²ΠΈΠ΄ констант, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… свой порядковый Π½ΠΎΠΌΠ΅Ρ€, начиная с 0.

НапримСр:

type
Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅=(сСвСр, юг, Π·Π°ΠΏΠ°Π΄, восток);
мСсяц=(июнь,июль,август,ΡΠ½Π²Π°Ρ€ΡŒ);
Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ=(Π²Π΅Π΄Ρ€ΠΎ,Π±ΠΎΡ‡ΠΊΠ°,канистра,Π±Π°ΠΊ);
var
ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚:Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅;
ΠΎΡ‚ΡŠΠ΅Π·Π΄:мСсяц;
объСм:Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ;
Β 

ΠΈΠ»ΠΈ Ρ‚Π°ΠΊ:

var
ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚:(свСр, юг, Π·Π°ΠΏΠ°Π΄, восток);
ΠΎΡ‚ΡŠΠ΅Π·Π΄:(июнь, июль, август, ΡΠ½Π²Π°Ρ€ΡŒ);
объСм:(Π²Π΅Π΄Ρ€ΠΎ, Π±ΠΎΡ‡ΠΊΠ°, канистра, Π±Π°ΠΊ);
Β 

МоТно Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания:

ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚:=юг;
ΠΎΡ‚ΡŠΠ΅Π·Π΄:=август;
объСм:=бак;

Π½ΠΎ нСльзя Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠΌΠ΅ΡˆΠ°Π½Π½Ρ‹Π΅ присваивания:

ΠΎΡ‚ΡŠΠ΅Π·Π΄:=юг;
объСм:=август;
Β 

К ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ пСрСчислимого Ρ‚ΠΈΠΏΠ° ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

1. ORD — порядковый Π½ΠΎΠΌΠ΅Ρ€

2. PRED — ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт

3. SUCC — ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

PRED(Π±ΠΎΡ‡ΠΊΠ°)=Π²Π΅Π΄Ρ€ΠΎ; 
SUCC(юг)=запад; 
ORD(июль)=1;
Β 

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ пСрСчислимого Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΡ€Π°Π²Π½ΠΈΡ‚ΡŒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ упорядочСны ΠΈ ΠΏΡ€ΠΎΠ½ΡƒΠΌΠ΅Ρ€ΠΎΠ²Π°Π½Ρ‹. Π’Π°ΠΊ выраТСния: сСвСр < юг, июнь < ΡΠ½Π²Π°Ρ€ΡŒ ΠΈΠΌΠ΅ΡŽΡ‚ значСния TRUE, Π° юг>Π·Π°ΠΏΠ°Π΄ ΠΈ Π±Π°ΠΊ<Π±ΠΎΡ‡ΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ FАLSE.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ

Если пСрСмСнная ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π΅ всС значСния своСго Ρ‚ΠΈΠΏΠ°, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, Ρ‚ΠΎ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ задаСтся ΠΏΡƒΡ‚Π΅ΠΌ накладывания ограничСния Π½Π° Π±Π°Π·ΠΎΠ²Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹.

ΠžΠΏΠΈΡΡ‹Π²Π°Π΅Ρ‚ΡΡ Ρ‚Π°ΠΊ:

TYPE <имя Ρ‚ΠΈΠΏΠ°>=константа1..константа2

ΠŸΡ€ΠΈ этом Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°:

  1. ОбС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ константы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.
  2. Π’ качСствС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой простой Ρ‚ΠΈΠΏ, ΠΊΡ€ΠΎΠΌΠ΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ(real).
  3. ΠΠ°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ большС ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ значСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

type index=0..63;
letter=’a’..’z’; var char1,char2:letter;
a,g:index;

МоТно ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ сразу Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ описания ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

var a,g:0..63;
char1,char2:’a’..’z’.
ЦСлочислСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…

— Visual Basic

  • 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ 32-разрядныС (4-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Π΅) Ρ†Π΅Π»Ρ‹Π΅ числа со Π·Π½Π°ΠΊΠΎΠΌ, значСния ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ -2 147 483 648 Π΄ΠΎ 2 147 483 647.

ЗамСчания

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Integer обСспСчиваСт ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° 32-разрядном процСссорС. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΈ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠ· памяти ΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Integer Ρ€Π°Π²Π½ΠΎ 0.

Π‘ΡƒΠΊΠ²Π°Π»ΡŒΠ½Ρ‹Π΅ задания

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Integer , присвоив Π΅ΠΉ дСсятичный Π»ΠΈΡ‚Π΅Ρ€Π°Π», ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π», Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΈΠ»ΠΈ (начиная с Visual Basic 2017) Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π».Если цСлочислСнный Π»ΠΈΡ‚Π΅Ρ€Π°Π» находится Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Integer (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ, Ссли ΠΎΠ½ мСньшС Int32.MinValue ΠΈΠ»ΠΈ большС Int32.MaxValue, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка компиляции.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ†Π΅Π»Ρ‹ΠΌ числам ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ†Π΅Π»Ρ‹Π΅ числа, Ρ€Π°Π²Π½Ρ‹Π΅ 90 946, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ прСдставлСны Π² Π²ΠΈΠ΄Π΅ дСсятичных, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ².

  Dim intValue1 As Integer = 90946
Π•Π«ΠΏΠ΅ (intValue1)
Dim intValue2 As Integer = & h26342
Π•Π«ΠΏΠ΅ (intValue2)

Dim intValue3 As Integer = & B0001_0110_0011_0100_0010
ΠŸΡ€ΠΈΡΡ‚Π°Π²ΠΊΠ°.Π•Π«ΠΏΠ΅ (intValue3)
'Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:
90946
90946
90946
  

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π’Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ прСфикс & h ΠΈΠ»ΠΈ & H для обозначСния ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°, прСфикс & b ΠΈΠ»ΠΈ & B для обозначСния Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° ΠΈ прСфикс ΠΈ o ΠΈΠ»ΠΈ & O для обозначСния Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ³ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°. ДСсятичныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ прСфикса.

Начиная с Visual Basic 2017, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ подчСркивания _ Π² качСствС раздСлитСля Ρ†ΠΈΡ„Ρ€ для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

  Dim intValue1 As Integer = 90_946
Π•Π«ΠΏΠ΅ (intValue1)

Dim intValue2 As Integer = & H0001_6342
Π•Π«ΠΏΠ΅ (intValue2)

Dim intValue3 As Integer = & B0001_0110_0011_0100_0010
Π•Π«ΠΏΠ΅ (intValue3)
'Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:
90946
90946
90946
  

Начиная с Visual Basic 15.5, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ подчСркивания ( _ ) Π² качСствС Π²Π΅Π΄ΡƒΡ‰Π΅Π³ΠΎ раздСлитСля ΠΌΠ΅ΠΆΠ΄Ρƒ прСфиксом ΠΈ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ, Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ.НапримСр:

  ВусклоС число ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅ число = & H_C305_F860
  

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ подчСркивания Π² качСствС Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ раздСлитСля, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ элСмСнт Π² Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Visual Basic (* .vbproj):

  
   15.5 

  

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. Настройку языковой вСрсии Visual Basic.

ЧисловыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ символ Ρ‚ΠΈΠΏΠ° I для обозначСния Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… Integer , ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

  Вусклый Π½ΠΎΠΌΠ΅Ρ€ = & H_035826I
  

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ

  • БообраТСния ΠΎ взаимодСйствии. Если Π²Ρ‹ взаимодСйствуСтС с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ, Π½Π΅ написанными для .NET Framework, Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ COM, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Integer ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… (16 Π±ΠΈΡ‚) Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… срСдах. Если Π²Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚Π΅ 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ, ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Short вмСсто Integer Π² вашСм Π½ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ΄Π΅ Visual Basic.

  • Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅. Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Integer Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅Ρ‚ΡΡ Π΄ΠΎ Long , Decimal , Single ΠΈΠ»ΠΈ Double . Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Integer Π² любой ΠΈΠ· этих Ρ‚ΠΈΠΏΠΎΠ² Π±Π΅Π· возникновСния ошибки System.OverflowException.

  • Π’ΠΈΠΏ ΠŸΠ΅Ρ€ΡΠΎΠ½Π°ΠΆΠΈ. ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° 9009 I ΠΊ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρƒ Π΅Π³ΠΎ пСрСводят Π² Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Integer . ΠŸΡ€ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Ρ‚ΠΈΠΏΠ° символа % ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρƒ устанавливаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Integer .

  • Π’ΠΈΠΏ Ρ€Π°ΠΌΡ‹. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π² .NET Framework являСтся структура System.Int32.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½

Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ цСлочислСнного Ρ‚ΠΈΠΏΠ° Π² число Π²Π½Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° для этого Ρ‚ΠΈΠΏΠ°, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ ошибка. Если Π²Ρ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² Π΄Ρ€ΠΎΠ±ΠΈ, число округляСтся Π² Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ ΠΈΠ»ΠΈ ΠΌΠ΅Π½ΡŒΡˆΡƒΡŽ сторону Π΄ΠΎ блиТайшСго Ρ†Π΅Π»ΠΎΠ³ΠΎ числа. Если число ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ Π±Π»ΠΈΠ·ΠΊΠΎ ΠΊ Π΄Π²ΡƒΠΌ цСлочислСнным значСниям, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ округляСтся Π΄ΠΎ блиТайшСго Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ числа. Π’Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ сводит ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ ошибки округлСния, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ округлСния значСния срСднСй Ρ‚ΠΎΡ‡ΠΊΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠΈ.Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ округлСния.

  'Допустимый Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ цСлочислСнной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ: ΠΎΡ‚ -2147483648 Π΄ΠΎ +2147483647.
Dim K As Integer
Β«Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ слишком Π²Π΅Π»ΠΈΠΊΠΎ.
k = 2147483648
Β«Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ устанавливаСт k Π² 6.
ΠΊ = 5,9
Β«Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ устанавливаСт ΠΊ 4
ΠΊ = 4,5
Β«Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ устанавливаСт ΠΊ 6
'ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Visual Basic ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ Π±Π°Π½ΠΊΠΈΡ€Π° (Π΄ΠΎ блиТайшСго Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ числа)
ΠΊ = 5,5
  

Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅

,

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡŽΠΌΠ΅ | Microsoft Docs

  • 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… — это характСристика ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ.Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя Π΄Π°Π½Π½Ρ‹Π΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ опрСдСляСмыС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Ρ‚ΠΈΠΏΡ‹ ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

Набор Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ хранСния.

ΠžΡ‚ ΠžΡ‚
Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ОбъСм хранСния Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
Boolean 2 Π±Π°ΠΉΡ‚Π° True ΠΈΠ»ΠΈ False
Π‘Π°ΠΉΡ‚ 1 Π±Π°ΠΉΡ‚ ΠΎΡ‚ 0 Π΄ΠΎ 255
ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΡ НСизвСстно НСизвСстно
Π’Π°Π»ΡŽΡ‚Π° (ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число) 8 Π±Π°ΠΉΡ‚ΠΎΠ²-922,337,203,685,477.Π‘ 5808 Π΄ΠΎ 922 337 203 685 477,5807
Π”Π°Ρ‚Π° 8 Π±Π°ΠΉΡ‚ΠΎΠ² ΠΎΡ‚ 1 января 100 Π΄ΠΎ 31 дСкабря 9999
ДСсятичноС число 14 Π±Π°ΠΉΡ‚ΠΎΠ² +/- 79,228,162,514,264,337,593,543,950,335 Π±Π΅Π· дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΈ

+/- 7.9228162514264337593543950335 с 28 Π·Π½Π°ΠΊΠ°ΠΌΠΈ справа ΠΎΡ‚ дСсятичной Π΄Ρ€ΠΎΠ±ΠΈ

НаимСньшСС Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ число Ρ€Π°Π²Π½ΠΎ +/- 0,0000000000000000000000000001

Π‘Π»ΠΎΠ²Π°Ρ€ΡŒ НСизвСстно НСизвСстно
Π”Π²ΠΎΠΉΠ½ΠΎΠΉ (двойная Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ) 8 Π±Π°ΠΉΡ‚ΠΎΠ² -1.ΠžΡ‚ 79769313486231E308 Π΄ΠΎ -4.94065645841247E-324 для ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

4.94065645841247E-324 Π΄ΠΎ 1.79769313486232E308 для ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π¦Π΅Π»ΠΎΠ΅ число 2 Π±Π°ΠΉΡ‚Π° — ΠΎΡ‚ 32 768 Π΄ΠΎ 32 767
Long (Long integer) 4 Π±Π°ΠΉΡ‚Π° -2 147 483 648 Π΄ΠΎ 2 147 483 647
LongLong (LongLong integer) 8 Π±Π°ΠΉΡ‚ΠΎΠ² -9,223,372,036,854,775,808 Π΄ΠΎ 9,223,372,036,854,775,807

Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….

LongPtr (Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ Π² 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… систСмах, Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ Π² 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… систСмах) 4 Π±Π°ΠΉΡ‚Π° Π² 32-Π±ΠΈΡ‚Π½Ρ‹Ρ… систСмах

8 Π±Π°ΠΉΡ‚ΠΎΠ² Π² 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… систСмах

-2 147 483 648 Π΄ΠΎ 2 147 483 647 Π² 32-разрядных систСмах

-9 223 372 036 854 775 808 Π΄ΠΎ 9 223 372 036 854 775 807 Π² 64-разрядных систСмах

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ 4 Π±Π°ΠΉΡ‚Π° Π›ΡŽΠ±ΠΎΠΉ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Бсылка
ΠžΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹ΠΉ (с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ точности) 4 Π±Π°ΠΉΡ‚Π° -3.ΠžΡ‚ 402823E38 Π΄ΠΎ -1.401298E-45 для ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

1.401298E-45 Π΄ΠΎ 3.402823E38 для ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Π‘Ρ‚Ρ€ΠΎΠΊΠ° (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹) 10 Π±Π°ΠΉΡ‚ΠΎΠ² + Π΄Π»ΠΈΠ½Π° строки Π΄ΠΎ 2 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ΠΎΠ²
Π‘Ρ‚Ρ€ΠΎΠΊΠ° (фиксированная Π΄Π»ΠΈΠ½Π°) Π”Π»ΠΈΠ½Π° Π½ΠΈΡ‚ΠΈ 1 Π΄ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 65 400
Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ (с Π½ΠΎΠΌΠ΅Ρ€Π°ΠΌΠΈ) 16 Π±Π°ΠΉΡ‚ΠΎΠ² Π›ΡŽΠ±ΠΎΠ΅ числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π”Π²ΠΎΠΉΠ½ΠΎΠΉ
Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ (с символами) 22 Π±Π°ΠΉΡ‚Π° + Π΄Π»ΠΈΠ½Π° строки (24 Π±Π°ΠΉΡ‚Π° Π² 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… систСмах) Π’ΠΎΡ‚ ΠΆΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½, Ρ‡Ρ‚ΠΎ ΠΈ для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ Π‘Ρ‚Ρ€ΠΎΠΊΠ°
ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌΡ‹ΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ (с использованиСм Π’ΠΈΠΏ ) НомСр, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ для элСмСнтов Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта совпадаСт с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ , содСрТащий массив, Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π° 12 Π±Π°ΠΉΡ‚ΠΎΠ² большС, Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ массив.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Массивам любого Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… трСбуСтся 20 Π±Π°ΠΉΡ‚ΠΎΠ² памяти плюс 4 Π±Π°ΠΉΡ‚Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ измСрСния массива плюс количСство Π±Π°ΠΉΡ‚ΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… самими Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠŸΠ°ΠΌΡΡ‚ΡŒ, занимаСмая Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ рассчитана ΠΏΡƒΡ‚Π΅ΠΌ умноТСния количСства элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта.

НапримСр, Π΄Π°Π½Π½Ρ‹Π΅ Π² ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎΠΌ массивС, состоящСм ΠΈΠ· 4 Ρ†Π΅Π»Ρ‹Ρ… элСмСнтов Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ 2 Π±Π°ΠΉΡ‚Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 8 Π±Π°ΠΉΡ‚ΠΎΠ².8 Π±Π°ΠΉΡ‚ΠΎΠ², Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Ρ… для Π΄Π°Π½Π½Ρ‹Ρ…, плюс 24 Π±Π°ΠΉΡ‚Π° слуТСбных Π΄Π°Π½Π½Ρ‹Ρ…, ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π² памяти для массива Π΄ΠΎ 32 Π±Π°ΠΉΡ‚ΠΎΠ². На 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… SAFEARRAY Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚ 24 Π±ΠΈΡ‚Π° (плюс 4 Π±Π°ΠΉΡ‚Π° Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Dim). Π§Π»Π΅Π½ pvData являСтся 8-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½ ΠΏΠΎ 8-Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΌ Π³Ρ€Π°Π½ΠΈΡ†Π°ΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

LongPtr Π½Π΅ являСтся истинным Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½ прСобразуСтся Π² Long Π² 32-разрядных срСдах ΠΈΠ»ΠΈ LongLong Π² 64-разрядных срСдах. LongPtr Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для прСдставлСния указатСля ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°Ρ… Declare ΠΈ позволяСт ΠΏΠΈΡΠ°Ρ‚ΡŒ пСрСносимый ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ Π² 32-разрядных, Ρ‚Π°ΠΊ ΠΈ Π² 64-разрядных срСдах.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ StrConv для прСобразования ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° строковых Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

Π‘ΠΌ. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСобразования Ρ‚ΠΈΠΏΠΎΠ² для ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² использования ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ для привСдСния выраТСния ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΡƒ Π΄Π°Π½Π½Ρ‹Ρ…: CBool ​​, CByte , CCur , CDate , CDbl , CDec , CInt , CLng , CLngLng , CLngPtr , CSng , CStr ΠΈ CVar .

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ страницы Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ: CVErr , Fix ΠΈ Int .

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

CLngLng дСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° 64-Π±ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ….

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…

Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… см. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния для CStr

Если , Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ CStr Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚
Boolean Π‘Ρ‚Ρ€ΠΎΠΊΠ°, содСрТащая True ΠΈΠ»ΠΈ False .
Π”Π°Ρ‚Π° Π‘Ρ‚Ρ€ΠΎΠΊΠ°, содСрТащая Π΄Π°Ρ‚Ρƒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ Π΄Π°Ρ‚Ρ‹ вашСй систСмы.
ΠŸΡƒΡΡ‚ΠΎ Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π½ΡƒΠ»Π΅Π²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ («»).
Ошибка Π‘Ρ‚Ρ€ΠΎΠΊΠ°, содСрТащая слово Ошибка , Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт Π½ΠΎΠΌΠ΅Ρ€ ошибки.
ΠΡƒΠ»ΡŒ Ошибка Π²ΠΎ врСмя выполнСния.
Π”Ρ€ΡƒΠ³ΠΈΠ΅ числовыС Π‘Ρ‚Ρ€ΠΎΠΊΠ°, содСрТащая число.

Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ обратная связь

Π•ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ ΠΎΡ‚Π·Ρ‹Π²Ρ‹ ΠΎ Office VBA ΠΈΠ»ΠΈ этой Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ? ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ ΠΈ ΠΎΡ‚Π·Ρ‹Π²Π°ΠΌΠΈ Office VBA, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, ΠΈ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΡ‚Π·Ρ‹Π².

,

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½Ρ‹Π΅ числовыС Ρ‚ΠΈΠΏΡ‹ — C # ссылка

  • 3 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅

ЦСлочислСнныС числовыС Ρ‚ΠΈΠΏΡ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Ρ†Π΅Π»Ρ‹Π΅ числа.ВсС цСлочислСнныС числовыС Ρ‚ΠΈΠΏΡ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Они Ρ‚Π°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ простыми Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°ΠΌΠΈ. ВсС цСлочислСнныС числовыС Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ арифмСтичСскиС, ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹Π΅ логичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния ΠΈ равСнства.

Π₯арактСристики цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ²

C # ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ цСлочислСнныС Ρ‚ΠΈΠΏΡ‹:

БистСма ΠžΡ‚ БистСма
C # Ρ‚ΠΈΠΏ / ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π Π°Π·ΠΌΠ΅Ρ€. NET Ρ‚ΠΈΠΏ
сбайт -128 Π΄ΠΎ 127 8-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌ.SByte
Π±Π°ΠΉΡ‚ ΠΎΡ‚ 0 Π΄ΠΎ 255 8-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° System.Byte
ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ Π΄ΠΎ 32 768 Π΄ΠΎ 32 767 16-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌ System.Int16
ushort ΠΎΡ‚ 0 Π΄ΠΎ 65 535 16-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° System.UInt16
ΠΈ -2 147 483 648 Π΄ΠΎ 2 147 483 647 32-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌ.Int32
ΡƒΠΈΠ½Ρ‚ ΠΎΡ‚ 0 Π΄ΠΎ 4 294 967 295 32-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° System.UInt32
Π΄Π»ΠΈΠ½ΠΎΠΉ -9,223,372,036,854,775,808 Π΄ΠΎ 9,223,372,036,854,775,807 64-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌ System.Int64
ulong ΠΎΡ‚ 0 Π΄ΠΎ 18 446 744 073 709 551 615 64-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° System.UInt64

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Ρ‚ΠΈΠΏΠ° C # ΠΈΠ· ΠΊΡ€Π°ΠΉΠ½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ столбца являСтся псСвдонимом для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ.Чистый Ρ‚ΠΈΠΏ. Они взаимозамСняСмы. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ объявлСния ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°:

  int a = 123;
System.Int32 b = 123;
  

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ цСлочислСнного Ρ‚ΠΈΠΏΠ° являСтся ноль, 0 . ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠΌΠ΅Π΅Ρ‚ константы MinValue ΠΈ MaxValue , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ минимальноС ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого Ρ‚ΠΈΠΏΠ°.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ структуру System.Numerics.BigInteger для прСдставлСния Ρ†Π΅Π»ΠΎΠ³ΠΎ числа со Π·Π½Π°ΠΊΠΎΠΌ Π±Π΅Π· Π²Π΅Ρ€Ρ…Π½ΠΈΡ… ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½ΠΈΡ… Π³Ρ€Π°Π½ΠΈΡ†.

цСлочислСнных Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ²

ЦСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ

  • дСсятичный : Π±Π΅Π· прСфикса
  • ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ : с прСфиксом 0x ΠΈΠ»ΠΈ 0X
  • Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ : с прСфиксом 0b ΠΈΠ»ΠΈ 0B (доступно Π² C # 7.0 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях)

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ дСмонстрируСт ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ:

  var decimalLiteral = 42;
var hexLiteral = 0x2A;
var binaryLiteral = 0b_0010_1010;
  

Π’ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ использованиС _ Π² качСствС -разрядного раздСлитСля , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ поддСрТиваСтся начиная с C # 7.0. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Ρ†ΠΈΡ„Ρ€ со всСми Π²ΠΈΠ΄Π°ΠΌΠΈ числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ².

Π’ΠΈΠΏ цСлочислСнного Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° опрСдСляСтся Π΅Π³ΠΎ суффиксом ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • Если Ρƒ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Π½Π΅Ρ‚ суффикса, Π΅Π³ΠΎ Ρ‚ΠΈΠΏ являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: , , , , , , ΠΈ .

  • Если ΠΊ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρƒ добавляСтся U ΠΈΠ»ΠΈ u , Π΅Π³ΠΎ Ρ‚ΠΈΠΏ являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: uint , ulong .

  • Если ΠΊ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρƒ добавляСтся L ΠΈΠ»ΠΈ l , Π΅Π³ΠΎ Ρ‚ΠΈΠΏ являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСно: Π΄Π»ΠΈΠ½ΠΎΠΉ , ulong .

    ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

    Π’ качСствС суффикса ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ l . Однако ΠΏΡ€ΠΈ этом гСнСрируСтся ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ компилятора, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π±ΡƒΠΊΠ²Ρƒ l ΠΌΠΎΠΆΠ½ΠΎ ΡΠΏΡƒΡ‚Π°Ρ‚ΡŒ с Ρ†ΠΈΡ„Ρ€ΠΎΠΉ 1 . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ L для ясности.

  • Если ΠΊ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρƒ добавляСтся UL , UL , UL , ul , LU , Lu , lU ΠΈΠ»ΠΈ lu , Π΅Π³ΠΎ Ρ‚ΠΈΠΏ Ρ€Π°Π²Π΅Π½ ulong .

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, прСдставлСнноС цСлочислСнным Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ UInt64.MaxValue, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка компилятора CS1021.

Если ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ цСлочислСнного Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° Ρ€Π°Π²Π΅Π½ ΠΈΠ»ΠΈ , Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, прСдставлСнноС Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ, находится Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ Ρ‚ΠΈΠΏΠ° назначСния, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ нСявно ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π² Π±Π°ΠΉΡ‚Π° , Π±Π°ΠΉΡ‚Π° , ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ³ΠΎ , ushort , ΠΈ ΠΈΠ»ΠΈ ΠΈ :

  Π±Π°ΠΉΡ‚ Π° = 17;
Π±Π°ΠΉΡ‚ b = 300; // CS0031: постоянноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«300Β» Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π² Β«Π±Π°ΠΉΡ‚Β»
  

Как ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° находится Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ошибка компилятора CS0031.

МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ для прСобразования значСния, прСдставлСнного цСлочислСнным Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ, Π² Ρ‚ΠΈΠΏ, ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°:

  var signatureByte = (sbyte) 42;
var longVariable = (long) 42;
  

прСобразования

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ любой цСлочислСнный числовой Ρ‚ΠΈΠΏ Π² любой Π΄Ρ€ΡƒΠ³ΠΎΠΉ цСлочислСнный числовой Ρ‚ΠΈΠΏ. Если Ρ‚ΠΈΠΏ назначСния ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ всС значСния Ρ‚ΠΈΠΏΠ° источника, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ являСтся нСявным. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ привСдСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ явноС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅.Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. ВстроСнныС числовыС прСобразования.

C # языковая спСцификация

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹ спСцификации языка C #:

Π‘ΠΌ. Π’Π°ΠΊΠΆΠ΅

,ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…
(Π£Ρ‡Π΅Π±Π½Ρ‹Π΅ руководства Java β„’> Π˜Π·ΡƒΡ‡Π΅Π½ΠΈΠ΅ языка Java> ΠžΡΠ½ΠΎΠ²Ρ‹ языка)

Π―Π·Ρ‹ΠΊ программирования Java ΠΈΠΌΠ΅Π΅Ρ‚ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ всС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ сначала ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠ°ΠΊ Π²Ρ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ:

Π­Ρ‚ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π΅ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«gearΒ» сущСствуСт, содСрТит числовыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Β«1Β». Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ опрСдСляСт значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ, плюс ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ с Π½Π΅ΠΉ.Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ ΠΈ язык программирования Java ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ сСмь Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… . Π’ΠΈΠΏ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π° ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ языком ΠΈ называСтся Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом. ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ значСния Π½Π΅ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ состояниС с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ значСниями. Π’ΠΎΡΠ΅ΠΌΡŒ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… языком программирования Java:

  • Π±Π°ΠΉΡ‚ : -Π±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… прСдставляСт собой 8-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа со Π·Π½Π°ΠΊΠΎΠΌ. Он ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -128 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 127 (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ). Π±Π°ΠΉΡ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π΅Π½ для экономии памяти Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивы, Π³Π΄Π΅ экономия памяти Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ вмСсто ΠΈ , Π³Π΄Π΅ ΠΈΡ… ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΏΠΎΠΌΠΎΠ³Π°ΡŽΡ‚ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΡ‚ΡŒ ваш ΠΊΠΎΠ΄; Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠΎΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

  • short : Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… short — это 16-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число с Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌ Π·Π½Π°ΠΊΠΎΠΌ со Π·Π½Π°ΠΊΠΎΠΌ. Он ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -32 768 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 32 767 (Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ).Как ΠΈ Π² случаС Π±Π°ΠΉΡ‚ , ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‚Π΅ ΠΆΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ: Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ short для экономии памяти Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах, Π² ситуациях, ΠΊΠΎΠ³Π΄Π° экономия памяти Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

  • int : ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int прСдставляСт собой 32-разрядноС Ρ†Π΅Π»ΠΎΠ΅ число со Π·Π½Π°ΠΊΠΎΠΌ, состоящСС ΠΈΠ· Π΄Π²ΡƒΡ… чисСл со Π·Π½Π°ΠΊΠΎΠΌ, минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -2 31 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 31 -1. Π’ Java SE 8 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int для прСдставлСния 32-разрядного Ρ†Π΅Π»ΠΎΠ³ΠΎ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 32 -1.Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ класс Integer для использования Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… int Π² качСствС Ρ†Π΅Π»ΠΎΠ³ΠΎ числа Π±Π΅Π· Π·Π½Π°ΠΊΠ°. Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ€Π°Π·Π΄Π΅Π» ЧисловыС классы для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. БтатичСскиС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ compareUnsigned , Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ Unnsigned ΠΈ Ρ‚. Π”. Π‘Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊ Integer Класс для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для Ρ†Π΅Π»Ρ‹Ρ… чисСл Π±Π΅Π· Π·Π½Π°ΠΊΠ°.

  • Π΄Π»ΠΈΠ½ΠΎΠΉ : Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π»ΠΈΠ½ΠΎΠΉ являСтся 64-разрядным Ρ†Π΅Π»Ρ‹ΠΌ числом с Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎ Π΄Π²ΡƒΡ…. ΠŸΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ long ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ -2 63 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 63 -1.Π’ Java SE 8 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π΄Π»ΠΈΠ½ΠΎΠΉ для прСдставлСния 64-разрядной Π΄Π»ΠΈΠ½Ρ‹ Π±Π΅Π· Π·Π½Π°ΠΊΠ°, которая ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 2 64 -1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ, Ρ‡Π΅ΠΌ значСния, прСдоставлСнныС ΠΈ . Класс Long Класс Ρ‚Π°ΠΊΠΆΠ΅ содСрТит ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ compareUnsigned , splitUnsigned ΠΈ Ρ‚. Π”. Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ арифмСтичСских ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ для Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… Π±Π΅Π· Π·Π½Π°ΠΊΠ°.

  • с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой : Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой — это 32-битная IEEE 754 с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ точности.Π•Π³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этого обсуТдСния, Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ Π² Π Π°Π·Π΄Π΅Π» Β«Π’ΠΈΠΏΡ‹, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ значСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой» Π² спСцификации языка Java. Как ΠΈ Π² случаС с рСкомСндациями для Π±Π°ΠΉΡ‚ΠΎΠ², ΠΈ для ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой (вмСсто с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ ), Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивах чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²Π°Π»ΡŽΡ‚Π°. Для этого Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ класс java.math.BigDecimal.Числа ΠΈ строки ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ BigDecimal ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ классы, прСдоставляСмыС ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Java.

  • double : Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… double прСдставляСт собой 64-Ρ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ IEEE 754 с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности. Π•Π³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ этого обсуТдСния, Π½ΠΎ ΡƒΠΊΠ°Π·Π°Π½ Π² Π Π°Π·Π΄Π΅Π» Β«Π’ΠΈΠΏΡ‹, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈ значСния с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой» Π² спСцификации языка Java. Для дСсятичных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ этот Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Как ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ Π²Ρ‹ΡˆΠ΅, этот Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²Π°Π»ΡŽΡ‚Π°.

  • логичСский : Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… логичСский ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… значСния: истина ΠΈ лоТь . Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ этот Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… для простых Ρ„Π»Π°Π³ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ истинныС / Π»ΠΎΠΆΠ½Ρ‹Π΅ условия. Π­Ρ‚ΠΎΡ‚ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… прСдставляСт ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½ΠΎ Π΅Π³ΠΎ Β«Ρ€Π°Π·ΠΌΠ΅Ρ€Β» Π½Π΅ являСтся Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ.

  • char : Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… char — это ΠΎΠ΄ΠΈΠ½ 16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ символ Unicode. Он ΠΈΠΌΠ΅Π΅Ρ‚ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ '\ u0000' (ΠΈΠ»ΠΈ 0) ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ '\ uffff' (ΠΈΠ»ΠΈ 65 535 Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ).

Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ восьми пСрСчислСнным Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠ°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… язык программирования Java Ρ‚Π°ΠΊΠΆΠ΅ обСспСчиваСт ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… строк Ρ‡Π΅Ρ€Π΅Π· java.lang.String class. Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ строки символов Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ автоматичСски создаст Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ String ; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, String s = "это строка"; Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСизмСняСмыми , Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ послС создания ΠΈΡ… значСния Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹. Класс String тСхничСски Π½Π΅ являСтся ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ‚ΠΈΠΏΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ, учитывая ΠΎΡΠΎΠ±ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡƒΡŽ Π΅ΠΌΡƒ языком, Π²Ρ‹, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Π½Π΅ΠΌ ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΌ.Π’Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅ большС ΠΎ классС String Π² ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

ЗначСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

НС всСгда Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ объявлСнии поля. Поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹, Π½ΠΎ Π½Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, Π±ΡƒΠ΄ΡƒΡ‚ установлСны Ρ€Π°Π·ΡƒΠΌΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ компилятором. Π’ΠΎΠΎΠ±Ρ‰Π΅ говоря, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ , Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ…. Однако ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚Π°ΠΊΠΈΠ΅ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ считаСтся ΠΏΠ»ΠΎΡ…ΠΈΠΌ стилСм программирования.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π²Ρ‹ΡˆΠ΅ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (для ΠΏΠΎΠ»Π΅ΠΉ)
Π±Π°ΠΉΡ‚ 0
ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ 0
ΠΈ 0
Π΄Π»ΠΈΠ½ΠΎΠΉ 0L
ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ 0,0f
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ 0,0d
символов ‘u0000’
Π‘Ρ‚Ρ€ΠΎΠΊΠ° (ΠΈΠ»ΠΈ любой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚) Π½ΡƒΠ»ΡŒ
логичСскоС лоТь

Π›ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ; компилятор Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π½Π°Π·Π½Π°Ρ‡Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.Если Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½Π° объявлСна, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ присвоили Π΅ΠΉ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Доступ ΠΊ Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ локальной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС Π²ΠΎ врСмя компиляции.

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π·Π°ΠΌΠ΅Ρ‚ΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Π½ΠΎΠ²ΠΎΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°. ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ — это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, встроСнныС Π² язык; ΠΎΠ½ΠΈ Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, созданными ΠΈΠ· класса. Π›ΠΈΡ‚Π΅Ρ€Π°Π» являСтся прСдставлСниСм исходного ΠΊΠΎΠ΄Π° фиксированного значСния; Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ прСдставлСны нСпосрСдствСнно Π² вашСм ΠΊΠΎΠ΄Π΅, Π½Π΅ трСбуя вычислСний.Как ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°:

логичСский Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ = true;
char capitalC = 'C';
Π±Π°ΠΉΡ‚ b = 100;
ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ s = 10000;
int i = 100000;
 
цСлочислСнных Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ²

ЦСлочислСнный Π»ΠΈΡ‚Π΅Ρ€Π°Π» ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ Π΄Π»ΠΈΠ½ΠΎΠΉ , Ссли ΠΎΠ½ заканчиваСтся Π±ΡƒΠΊΠ²ΠΎΠΉ L ΠΈΠ»ΠΈ l ; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ ΠΈ . РСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π³Π»Π°Π²Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ L , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΡΡ‚Ρ€ΠΎΡ‡Π½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ l Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚ Ρ†ΠΈΡ„Ρ€Ρ‹ 1 .

ЗначСния цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ² Π±Π°ΠΉΡ‚ , short , int ΠΈ long ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы ΠΈΠ· Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² ΠΈ . ЗначСния Ρ‚ΠΈΠΏΠ° Π΄Π»ΠΈΠ½ΠΎΠΉ , ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‰ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ‚ Π΄ΠΎ , ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ созданы ΠΈΠ· Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² Π΄Π»ΠΈΠ½ΠΎΠΉ ΠΈ . ЦСлочислСнныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Ρ‹ этими систСмами счислСния:

  • ДСсятичноС число: основаниС 10, Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ состоят ΠΈΠ· чисСл ΠΎΡ‚ 0 Π΄ΠΎ 9; это систСма счислСния, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь
  • ШСстнадцатСричный: основаниС 16, Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ состоят ΠΈΠ· Ρ†ΠΈΡ„Ρ€ ΠΎΡ‚ 0 Π΄ΠΎ 9 ΠΈ Π±ΡƒΠΊΠ² ΠΎΡ‚ A Π΄ΠΎ F
  • Binary: Base 2, Ρ‡ΡŒΠΈ Ρ†ΠΈΡ„Ρ€Ρ‹ состоят ΠΈΠ· чисСл 0 ΠΈ 1 (Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π² Java SE 7 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях)

Для программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния дСсятичная систСма, вСроятно, Π±ΡƒΠ΄Π΅Ρ‚ СдинствСнной систСмой счислСния, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.Однако, Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΡƒΡŽ систСму счислСния, Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ синтаксис. ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ 0x ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π° 0b ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ΄:

// число 26 Π² дСсятичном Π²ΠΈΠ΄Π΅
int decVal = 26;
// число 26, Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ
int hexVal = 0x1a;
// число 26, Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ
int binVal = 0b11010;
 
Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ

Π›ΠΈΡ‚Π΅Ρ€Π°Π» с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΈΠΏ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой , Ссли ΠΎΠ½ заканчиваСтся Π±ΡƒΠΊΠ²ΠΎΠΉ F ΠΈΠ»ΠΈ f ; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π΅Π³ΠΎ Ρ‚ΠΈΠΏ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ , ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ„Π°ΠΊΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΈΠ²Π½ΠΎ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π±ΡƒΠΊΠ²ΠΎΠΉ D ΠΈΠ»ΠΈ d .

Π’ΠΈΠΏΡ‹ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ( с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой ΠΈ с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ ) Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ E ΠΈΠ»ΠΈ e (для Π½Π°ΡƒΡ‡Π½ΠΎΠΉ записи), F ΠΈΠ»ΠΈ f (32-разрядный Π»ΠΈΡ‚Π΅Ρ€Π°Π» с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой) ΠΈ D ΠΈΠ»ΠΈ d (64-разрядный Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π»; это ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΏΠΎ соглашСнию ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ).

Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ d1 = 123,4;
// Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ d1, Π½ΠΎ Π² Π½Π°ΡƒΡ‡Π½ΠΎΠΉ Π½ΠΎΡ‚Π°Ρ†ΠΈΠΈ
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ d2 = 1,234e2;
float f1 = 123,4f;
 
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Ρ‚ΠΈΠΏΠΎΠ² char ΠΈ String ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ символы Unicode (UTF-16).Если ваш Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈ файловая систСма ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ это, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ символы прямо Π² своСм ΠΊΠΎΠ΄Π΅. Если Π½Π΅Ρ‚, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«Unicode escapeΒ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, '\ u0108' (заглавная C с ΠΊΡ€ΡƒΠ³ΠΎΠ²Ρ‹ΠΌ сплСтСниСм) ΠΈΠ»ΠΈ "S \ u00ED Se \ u00F1 ΠΈΠ»ΠΈ" (SΓ­ SeΓ±or ΠΏΠΎ-испански). ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Β«ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈΒ» для Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² с символом ΠΈ Β«Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈΒ» для Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² String . Π­ΠΊΡ€Π°Π½ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Unicode ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… мСстах ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΏΠΎΠ»Π΅ΠΉ), Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ… char ΠΈΠ»ΠΈ String .

Π―Π·Ρ‹ΠΊ программирования Java Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ для Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² char ΠΈ String : \ b (backspace), \ t (табуляция), \ n (ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки), \ f (ΠΏΠΎΠ΄Π°Ρ‡Π° Ρ„ΠΎΡ€ΠΌΡ‹), \ r (Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ), \ " (двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°), \ ' (одинарная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°) ΠΈ \ (обратная косая Ρ‡Π΅Ρ€Ρ‚Π°).

БущСствуСт Ρ‚Π°ΠΊΠΆΠ΅ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π» null , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС значСния для любого ссылочного Ρ‚ΠΈΠΏΠ°. null ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ любой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΡ€ΠΎΠΌΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². Π‘ тСстом Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ , Ρ€Π°Π²Π½Ρ‹ΠΌ Π½ΡƒΠ»ΡŽ , ΠΌΠ°Π»ΠΎ Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ null часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Π² качСствС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° для указания Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ нСдоступСн.

НаконСц, Π΅ΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ особый Ρ‚ΠΈΠΏ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ класса , сформированный ΠΏΡƒΡ‚Π΅ΠΌ взятия ΠΈΠΌΠ΅Π½ΠΈ Ρ‚ΠΈΠΏΠ° ΠΈ добавлСния Β« .classΒ» ; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, String.class .Π­Ρ‚ΠΎ относится ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ (Ρ‚ΠΈΠΏΠ° , класс ), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт сам Ρ‚ΠΈΠΏ.

ИспользованиС символов подчСркивания Π² числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ…

Π’ Java SE 7 ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΡ… вСрсиях любоС число символов подчСркивания ( _ ) ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π³Π΄Π΅ ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ Π² числовом Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅. Π­Ρ‚Π° функция позволяСт Π²Π°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Ρ€Π°Π·Π΄Π΅Π»ΡΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ†ΠΈΡ„Ρ€ Π² числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ…, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π°.

НапримСр, Ссли ваш ΠΊΠΎΠ΄ содСрТит числа с нСсколькими Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ подчСркивания для раздСлСния Ρ†ΠΈΡ„Ρ€ Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠΎ Ρ‚Ρ€ΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π²Ρ‹ Π±Ρ‹ использовали Π·Π½Π°ΠΊ ΠΏΡƒΠ½ΠΊΡ‚ΡƒΠ°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΏΡΡ‚ΡƒΡŽ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π΅Π» Π² качСствС раздСлитСля.

Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ способы использования подчСркивания Π² числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ…:

long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
число с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой = 3.14_15F;
long hexBytes = 0xFF_EC_DE_5E;
long hexWords = 0xCAFE_BABE;
long maxLong = 0x7fff_ffff_ffff_ffffL;
nybbles Π±Π°ΠΉΡ‚Π° = 0b0010_0101;
Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ = 0b11010010_01101001_10010100_10010010;
 

ΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ; Π’Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… мСстах:

  • Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΈΠ»ΠΈ Π² ΠΊΠΎΠ½Ρ†Π΅ числа
  • Рядом с дСсятичной запятой Π² Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅
  • Π”ΠΎ суффикса F ΠΈΠ»ΠΈ L
  • Π’ позициях, Π³Π΄Π΅ оТидаСтся строка Ρ†ΠΈΡ„Ρ€

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ допустимыС ΠΈ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ размСщСния подчСркивания (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹) Π² числовых Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π°Ρ…:

//  Invalid: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ 
//  рядом с дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ 
float pi1 = 3_.1415F;
//  Invalid: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ 
//  рядом с дСсятичной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ 
float pi2 = 3._1415F;
//  Invalid: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ 
//  Π΄ΠΎ суффикса L 
long socialSecurityNumber1 = 999_99_9999_L;

// ОК (дСсятичный Π»ΠΈΡ‚Π΅Ρ€Π°Π»)
int x1 = 5_2;
//  Invalid: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ 
//  Π’ ΠΊΠΎΠ½Ρ†Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° 
int x2 = 52_;
// ОК (дСсятичный Π»ΠΈΡ‚Π΅Ρ€Π°Π»)
int x3 = 5_______2;

//  Invalid: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ 
//  с прСфиксом 0x radix 
int x4 = 0_x52;
//  Invalid: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ 
//  Π² Π½Π°Ρ‡Π°Π»Π΅ числа 
int x5 = 0x_52;
// ОК (ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π»)
int x6 = 0x5_2;
//  Invalid: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠΈΠ²Π°Π½ΠΈΠ΅ 
//  Π² ΠΊΠΎΠ½Ρ†Π΅ Π½ΠΎΠΌΠ΅Ρ€Π° 
int x7 = 0x52_;
 
,