Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ int: Π’ΠΈΠΏΡ‹ char, short, int ΠΈ long — Π¦Π΅Π»Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ — Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… — ΠžΡΠ½ΠΎΠ²Ρ‹ языка

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

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… | Microsoft Docs

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

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

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€Ρ‹ Microsoft C++ 32-bit ΠΈ 64-bit Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄Π°Π»Π΅Π΅ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

  • int (unsigned int)

  • __int8 (unsigned __int8)

  • __int16 (unsigned __int16)

  • __int32 (unsigned __int32)

  • __int64 (unsigned __int64)

  • short (unsigned short)

  • long (unsigned long)

  • long long (unsigned long long)

Если имя начинаСтся с Π΄Π²ΡƒΡ… символов подчСркивания (__), Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… являСтся нСстандартным.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹, прСдставлСнныС Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ значСния.

Имя Ρ‚ΠΈΠΏΠ°Π‘Π°ΠΉΡ‚Ρ‹Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π°Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
int4signedΠžΡ‚ -2Β 147Β 483Β 648 Π΄ΠΎ 2Β 147Β 483Β 647
unsigned int4unsignedΠžΡ‚ 0 Π΄ΠΎ 4 294 967 295
__int81
char
ΠžΡ‚ -128 Π΄ΠΎ 127
unsigned __int81unsigned charΠžΡ‚ 0 Π΄ΠΎ 255
__int162short, short int, signed short intΠžΡ‚ -32Β 768 Π΄ΠΎ 32Β 767
unsigned __int162unsigned short, unsigned short intΠžΡ‚ 0 Π΄ΠΎ 65 535
__int324signed, signed int, intΠžΡ‚ -2Β 147Β 483Β 648 Π΄ΠΎ 2Β 147Β 483Β 647
unsigned __int324unsigned,
unsigned int
ΠžΡ‚ 0 Π΄ΠΎ 4 294 967 295
__int648long long, signed long longΠžΡ‚ -9Β 223Β 372Β 036Β 854Β 775Β 808 Π΄ΠΎ 9Β 223Β 372Β 036Β 854Β 775Β 807
unsigned __int648unsigned long longΠžΡ‚ 0 Π΄ΠΎ 18 446 744 073 709 551 615
bool1Π½Π΅Ρ‚false ΠΈΠ»ΠΈ true
char1Π½Π΅Ρ‚ΠΎΡ‚-128 Π΄ΠΎ 127 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

ΠΎΡ‚ 0 Π΄ΠΎ 255 ΠΏΡ€ΠΈ компиляции с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ /J

signed char1Π½Π΅Ρ‚ΠžΡ‚ -128 Π΄ΠΎ 127
unsigned char1
Π½Π΅Ρ‚
ΠžΡ‚ 0 Π΄ΠΎ 255
short2short int, signed short intΠžΡ‚ -32Β 768 Π΄ΠΎ 32Β 767
unsigned short2unsigned short intΠžΡ‚ 0 Π΄ΠΎ 65 535
long4long int, signed long intΠžΡ‚ -2Β 147Β 483Β 648 Π΄ΠΎ 2Β 147Β 483Β 647
unsigned long4unsigned long intΠžΡ‚ 0 Π΄ΠΎ 4 294 967 295
long long8Π½Π΅Ρ‚ (Π½ΠΎ эквивалСнтно __int64 )ΠžΡ‚ -9Β 223Β 372Β 036Β 854Β 775Β 808 Π΄ΠΎ 9Β 223Β 372Β 036Β 854Β 775Β 807
unsigned long long
8Π½Π΅Ρ‚ (Π½ΠΎ эквивалСнтно unsigned __int64 )ΠžΡ‚ 0 Π΄ΠΎ 18 446 744 073 709 551 615
enumнСпостояннонСт
float4Π½Π΅Ρ‚3,4E +/- 38 (7 Π·Π½Π°ΠΊΠΎΠ²)
double8Π½Π΅Ρ‚1,7E +/- 308 (15 Π·Π½Π°ΠΊΠΎΠ²)
long doubleΡ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ doubleΠ½Π΅Ρ‚Π’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ double
wchar_t2__wchar_tΠžΡ‚ 0 Π΄ΠΎ 65 535

Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, пСрСмСнная __wchar_t опрСдСляСт Π»ΠΈΠ±ΠΎ Ρ‚ΠΈΠΏ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ символа, Π»ΠΈΠ±ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹ΠΉ символ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ константу Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ символьного Ρ‚ΠΈΠΏΠ°, ΠΏΠ΅Ρ€Π΅Π΄ символьной ΠΈΠ»ΠΈ строковой константой слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ прСфикс

L .

signed ΠΈ unsigned β€” это ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌ цСлочислСнным Ρ‚ΠΈΠΏΠΎΠΌ, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ bool . ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ char , signed char ΠΈ unsigned char β€” это Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° для Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.

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

C ΠΈ C++ Π² Visual Studio Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ __int8, __int16, __int32, __int64

ΠΈ ограничСния Ρ†Π΅Π»Ρ‹Ρ… чисСл.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния ΠΎΠ± ограничСниях Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° см. Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ВстроСнныС Ρ‚ΠΈΠΏΡ‹.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ пСрСчисляСмых Ρ‚ΠΈΠΏΠΎΠ² зависит ΠΎΡ‚ контСкста языка ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ„Π»Π°ΠΆΠΊΠΎΠ² компилятора. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ свСдСния см. Π² ΡΡ‚Π°Ρ‚ΡŒΡΡ… ОбъявлСния пСрСчислСний C ΠΈ ОбъявлСния пСрСчислСний C++.

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

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова
ВстроСнныС Ρ‚ΠΈΠΏΡ‹

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

  Обновл. 17 Июл 2021  | 

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

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

ЦСлочислСнный Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… β€” это Ρ‚ΠΈΠΏ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа (Π±Π΅Π· Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: -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.

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


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

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

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

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² языкС Π‘ΠΈ : Ρ†Π΅Π»Ρ‹Π΅, вСщСствСнныС, ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅


Β 

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… опрСдСляСт мноТСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½Π°Π±ΠΎΡ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ значСниям ΠΈ способ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ хранСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ накладывания ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ Π½Π° Ρ‚ΠΈΠΏΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… называСтся ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ Ρ‚ΠΈΠΏΠΎΠ² ΠΈΠ»ΠΈ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²ΠΈΠ΄Ρ‹ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΠΈ:

  • БтатичСская типизация β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Ρ‚ΠΈΠΏΠΎΠ² осущСствляСтся ΠΏΡ€ΠΈ компиляции.
  • ДинамичСская типизация β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Ρ‚ΠΈΠΏΠΎΠ² осущСствляСтся Π²ΠΎ врСмя выполнСния.

Π―Π·Ρ‹ΠΊ Π‘ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΡ‚Π°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ‚ΠΈΠΏΠΈΠ·Π°Ρ†ΠΈΡŽ, ΠΈ Ρ‚ΠΈΠΏΡ‹ всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π΅ компиляциСй.

Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ простыС, составныС ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Β 

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°

  • цСлочислСнныС,
  • вСщСствСнныС,
  • ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅
  • логичСскиС.

Β 

БоставныС (слоТныС) Π΄Π°Π½Π½Ρ‹Π΅

  • Массив β€” индСксированный Π½Π°Π±ΠΎΡ€ элСмСнтов ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°.
  • Π‘Ρ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ β€” массив, хранящий строку символов.
  • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° β€” Π½Π°Π±ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… элСмСнтов (ΠΏΠΎΠ»Π΅ΠΉ записи), Ρ…Ρ€Π°Π½ΠΈΠΌΡ‹ΠΉ ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ ΠΈ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ доступ ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌ полям структуры.

Β 

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…

  • Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ β€” Ρ…Ρ€Π°Π½ΠΈΡ‚ адрСс Π² памяти ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π½Π° ΠΊΠ°ΠΊΡƒΡŽ-Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ β€” ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ.

Β 
ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, написанная Π½Π° языкС Π‘ΠΈ, ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ². ВсС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ имя ΠΈ Ρ‚ΠΈΠΏ. ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ осущСствляСтся ΠΏΠΎ ΠΈΡ… ΠΈΠΌΠ΅Π½Π°ΠΌ (ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌ).

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, содСрТащая Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 32 символов, срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π° a β€” z, A β€” Z, Ρ†ΠΈΡ„Ρ€Ρ‹ 0 β€” 9 ΠΈ Π·Π½Π°ΠΊ подчСркивания (_). ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ символ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠΉ.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ допускаСтся имя, ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ Π΄ΠΎ 32 символов, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 8 символов. Помимо ΠΈΠΌΠ΅Π½ΠΈ, всС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»ΠΎ извСстно, сколько мСста Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ языка Π‘ΠΈ придСрТиваСтся строгого соотвСтствия прописных ΠΈ строчных Π±ΡƒΠΊΠ² Π² ΠΈΠΌΠ΅Π½Π°Ρ… ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ лСксСм.

ВСрноНСвСрно
int a = 2, b;
b = a+3;
Int a=2;Β  // ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ int
INT a=2;
int a = 2, b;
b = A + 3; // ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ А Π½Π΅ объявлСн
int a = 2;
b = a + 3; // ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ b Π½Π΅ объявлСн

ЦСлочислСнныС Π΄Π°Π½Π½Ρ‹Π΅

ЦСлочислСнныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ прСдставлСны Π² Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ ΠΈ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ числа ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π±ΠΈΡ‚ΠΎΠ² Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 2n-1, Π³Π΄Π΅ n-количСство Π·Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹Ρ… Π±ΠΈΡ‚ΠΎΠ².

Π—Π½Π°ΠΊΠΎΠ²Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ числа ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ -2n-1…+2n-1-1. ΠŸΡ€ΠΈ этом ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚ Π΄Π°Π½Π½ΠΎΠ³ΠΎ отводится ΠΏΠΎΠ΄ Π·Π½Π°ΠΊ числа (0 соотвСтствуСт ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ числу, 1 – ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ цСлочислСнных Π΄Π°Π½Π½Ρ‹Ρ…:

ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π±ΠΈΡ‚Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏΠ—Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ
8unsigned char
0…255
char
-128…127
16unsigned short
0…65535
short
-32768…32767
32unsigned intint
64unsigned long intlong int

ВСщСствСнныС Π΄Π°Π½Π½Ρ‹Π΅

ВСщСствСнный Ρ‚ΠΈΠΏ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для прСдставлСния Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл. ВСщСствСнныС числа ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² разрядной сСткС ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π² Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅.

Нормированная Ρ„ΠΎΡ€ΠΌΠ° числа ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ Π·Π½Π°Ρ‡Π°Ρ‰Π΅ΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ (Π½Π΅ 0) Π΄ΠΎ раздСлСния Ρ†Π΅Π»ΠΎΠΉ ΠΈ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части. Π’Π°ΠΊΠΎΠ΅ прСдставлСниС умноТаСтся Π½Π° основаниС систСмы счислСния Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ стСпСни. НапримСр, число 12345,678 Π² Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ

12345,678 = 1,2345678Β·104

Число 0,009876 Π² Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ

0,009876 = 9,876Β·10-3

Π’ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΉ разряд, стоящий ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ Ρ†Π΅Π»ΠΎΠΉ ΠΈ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π΅Π½Β  Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1. Π’ случаС Ссли число нСльзя ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, число 0), Π·Π½Π°Ρ‡Π°Ρ‰ΠΈΠΉ разряд ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»Π΅ΠΌ Ρ†Π΅Π»ΠΎΠΉ ΠΈ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части Ρ€Π°Π²Π΅Π½ 0.

Π—Π½Π°Ρ‡Π°Ρ‰ΠΈΠ΅ разряды числа, стоящиС Π² Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ послС раздСлитСля Ρ†Π΅Π»ΠΎΠΉ ΠΈ Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ мантиссой числа.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ случаС вСщСствСнноС число Π² разрядной сСткС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ 4 ΠΏΠΎΠ»Π΅ΠΉ.

Β 
Π Π°Π·Π»ΠΈΡ‡Π°ΡŽΡ‚ Ρ‚Ρ€ΠΈ основных Ρ‚ΠΈΠΏΠ° прСдставлСния вСщСствСнных чисСл Π² языкС Π‘ΠΈ:

ВипОбозна-
Ρ‡Π΅Π½ΠΈΠ΅ Π² Π‘ΠΈ
Кол-Π²ΠΎ Π±ΠΈΡ‚Π‘ΠΈΡ‚Ρ‹ ΡΡ‚Π΅ΠΏΠ΅Π½ΠΈΠœΠ°Π½Ρ‚ΠΈΡΡΠ°Π‘Π΄Π²ΠΈΠ³
простоСfloat3230…2322…0127
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точностиdouble6462…5251…01023
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½- Π½ΠΎΠΉ точностиlong double8078…6462…016383

Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π±ΠΈΡ‚ Ρ†Π΅Π»ΠΎΠ΅ Ρƒ Ρ‚ΠΈΠΏΠΎΠ² float ΠΈ double отсутствуСт. ΠŸΡ€ΠΈ этом Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ прСдставлСния вСщСствСнного числа состоит ΠΈΠ· Π΄Π²ΡƒΡ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ², располоТСнных симмСтрично ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ нуля. НапримСр, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ прСдставлСния чисСл Ρ‚ΠΈΠΏΠ° float ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ число -178,125 Π² 32-разрядной сСткС (Ρ‚ΠΈΠΏ float).

Для прСдставлСния числа Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅ΠΌ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ Ρ†Π΅Π»ΡƒΡŽ ΠΈ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ части:

17810 = 101100102.

0,12510 = 0,0012.

Π’ΠΎΠ³Π΄Π°

178,12510Β =Β 10110010,0012=1,0110010001Β·2111

Для прСобразования Π² Π½ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ осущСствляСтся сдвиг Π½Π° 7 разрядов Π²Π»Π΅Π²ΠΎ).

Для опрСдСлСния стСпСни числа примСняСм сдвиг:

0111111+00000111Β =Β 10000110.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, число -178,125 прСдставится Π² разрядной сСткС ΠΊΠ°ΠΊ

Β 

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

Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠΎΠ΄ символа ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для отобраТСния символов Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ…. Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ΄Π°Ρ… ΠΈ ΠΏΠΎ сути ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой цСлочислСнныС значСния. Для хранСния ΠΊΠΎΠ΄ΠΎΠ² символов Π² языкС Π‘ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΈΠΏ char.
ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΎ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ символов

Β 

ЛогичСский Ρ‚ΠΈΠΏ

ЛогичСский Ρ‚ΠΈΠΏ примСняСтся Π² логичСских опСрациях, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ алгоритмичСских ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ… условий ΠΈ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° значСния:

  • истина β€” true
  • лоТь β€” β€” false

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π΄Π°Π½ΠΎ объявлСниС всСх ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΈΡ… ΠΈΠΌΠ΅Π½ΠΈ ΠΈ Ρ‚ΠΈΠΏΠ°. ОписаниС Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… использованию Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ объявлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Β 
Β 

intΒ n;Β Β Β Β // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ n Ρ†Π΅Π»ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°
doubleΒ a;Β // ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ a вСщСствСнного Ρ‚ΠΈΠΏΠ° Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ точности


Назад: Π―Π·Ρ‹ΠΊ Π‘ΠΈ

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… int, Ρ†Π΅Π»Ρ‹Π΅ числа Π² Python.

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ Ρ†Π΅Π»Ρ‹Π΅ числа Π² Python ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ int ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ строки, состоящиС ΠΈΠ· дСсятичных Ρ†ΠΈΡ„Ρ€. Π¦Π΅Π»Ρ‹Π΅ числа Ρ‚ΠΈΠΏΠ° int (ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅) ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ сколь ΡƒΠ³ΠΎΠ΄Π½ΠΎ большиС значСния. Π’ΠΈΠΏ int ΡΠ²Π»ΡΡŽΡ‚ΡΡ нСизмСняСмым ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, выполняя ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Π½Π°Π΄ Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ Π½ΠΎΠ²Ρ‹ΠΉ числовой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚.

Π¦Π΅Π»Ρ‹Π΅ числа ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

Π’ΠΈΠΏ int Π² языкС Python прСдставлСн классом int(), ΠΎΠ½ позволяСт:

  • ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² Ρ†Π΅Π»ΠΎΠ΅ число Ρ‚ΠΈΠΏΠ° int с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ основания систСмы счислСния (дСсятичныС ΠΏΠΎ основанию 10, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎ основанию 16, Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎ основанию 8 ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎ основанию 2).
  • ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ вСщСствСнныС числа Ρ‚ΠΈΠΏΠ° float Π² Ρ‚ΠΈΠΏ int (отбрасываСт Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ).
  • ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Ρ†Π΅Π»Ρ‹Ρ… чисСл Π² Ρ‚ΠΈΠΏ int

Класс int() Π½Π΅ смоТСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊ Ρ‚ΠΈΠΏΡƒ int:

  • числа Ρ‚ΠΈΠΏΠ° complex, Ρ‚.ΠΊ. Π½Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ способа прСобразования Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° чисСл.
  • строку с записью числа с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (вСщСствСнного числа)
ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования прСобразования ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΊ Ρ‚ΠΈΠΏΡƒ int:
# ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ строки с записью 
# Ρ†Π΅Π»ΠΎΠ³ΠΎ числа Π² дСсятичной Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊ Ρ‚ΠΈΠΏΡƒ int
>>> int(' -3 ', base=10)
# 3

# ΠŸΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ дСсятичных Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ², 
# записанных Π² строки, основаниС ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ
>>> int(' +5 ')
# 5
>>> int(' -15_125')
# -15125


# ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° float Π² Ρ‚ΠΈΠΏ `int`
>>> int(3.23)
# 3
>>> int(1.)
# 1
>>> int(3.14e-10)
# 0

# Π’ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΈ строки с Π½ΠΈΠΌΠΈ - Π² Ρ‚ΠΈΠΏ int
>>> int(0o177)
# 127
>>> int('  0o177 ', base=8)
# 127


# ШСстнадцатСричныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΈ строки с Π½ΠΈΠΌΠΈ - Π² Ρ‚ΠΈΠΏ int
>>> int(0x9ff)
# 2559
>>> int(` 0x9ff  `, base=16)
# 2559

# Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΠΈ строки с Π½ΠΈΠΌΠΈ - Π² Ρ‚ΠΈΠΏ int
>>> int(0b101010)
# 42
>>> int(`0b101010`, base=2)
# 42

Начиная с Python 3.6, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΡ†Π΅Π½ΠΊΡƒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ числа, ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ ΠΈ послС любого спСцификатора систСмы счислСния Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Π΅ символы подчСркивания.

>>> 100_000, 0x_FF_FF, 0o7_777
 # (100000, 65535, 4095)

Π¦Π΅Π»Ρ‹Π΅ числа Π΅Ρ‰Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ (ΠΏΠΎ основанию 16), Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ (ΠΏΠΎ основанию 8) ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ (ΠΏΠΎ основанию 2).

  • ШСстнадцатСричныС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ символов 0x ΠΈΠ»ΠΈ 0X, вслСд Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ (0-9 ΠΈ A-F). ШСстнадцатСричныС Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ, Ρ‚Π°ΠΊ ΠΈ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ рСгистрС.
  • Π›ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… чисСл Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ символов 0o ΠΈΠ»ΠΈ 0O (ноль ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π·Π° Π½ΠΈΠΌ символ Β«oΒ» Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΠΈΠ»ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС), вслСд Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ (0-7).
  • Π”Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ символов 0b ΠΈΠ»ΠΈ 0B, вслСд Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ†ΠΈΡ„Ρ€Ρ‹ (0 – 1)

ВсС эти Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Ρ†Π΅Π»Ρ‹Ρ… чисСл, ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ всСго лишь Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Ρ„ΠΎΡ€ΠΌΠ°ΠΌΠΈ записи Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Для прСобразования Ρ†Π΅Π»ΠΎΠ³ΠΎ числа Π² строку с прСдставлСниСм Π² любой ΠΈΠ· Ρ‚Ρ€Π΅Ρ… систСм счислСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ hex(), oct() ΠΈ bin()

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ Ρ‚ΠΈΠΏΠ°

int:
int.bit_length():

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ количСство Π±ΠΈΡ‚ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для прСдставлСния Ρ†Π΅Π»ΠΎΠ³ΠΎ числа Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, ΠΈΡΠΊΠ»ΡŽΡ‡Π°Ρ Π·Π½Π°ΠΊ ΠΈ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π½ΡƒΠ»ΠΈ:

>>> n = -37
>>> bin(n)
# '-0b100101'
>>> n.bit_length()
# 6

Π­ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½ΠΎ:

def bit_length(self):
    # Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС: bin(-37) => '- 0b100101' 
    s = bin(self)
    # ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹Π΅ Π½ΡƒΠ»ΠΈ ΠΈ Π·Π½Π°ΠΊ минус
    s = s.lstrip('-0b')
    # len('100101') => 6
    return len(s)

int.to_bytes(length, byteorder, *, signed=False):

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив Π±Π°ΠΉΡ‚ΠΎΠ², ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… Ρ†Π΅Π»ΠΎΠ΅ число. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ length, byteorder ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ:
length Π·Π°Π΄Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ΅ количСство Π±Π°ΠΉΡ‚ΠΎΠ²,
byteorder опрСдСляСт Π² ΠΊΠ°ΠΊΠΎΠΌ порядкС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚Ρ‹ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ значСния 'big' — ΠΎΡ‚ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ ΠΊ ΠΌΠ»Π°Π΄ΡˆΠ΅ΠΌΡƒ, 'little' — ΠΎΡ‚ младшСго ΠΊ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌΡƒ.
signed позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ использованиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для прСдставлСния Ρ†Π΅Π»ΠΎΠ³ΠΎ числа. Если signed=False ΠΈ Π·Π°Π΄Π°Π½ΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число, Ρ‚ΠΎ бросаСтся OverflowError.

>>> (1024).to_bytes(2, byteorder='big')
# b'\x04\x00'
>>> (1024).to_bytes(10, byteorder='big')
# b'\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00'
>>> (-1024).to_bytes(10, byteorder='big', signed=True)
# b'\xff\xff\xff\xff\xff\xff\xff\xff\xfc\x00'
>>> x = 1000
>>> x.to_bytes((x.bit_length() + 7) // 8, byteorder='little')
# b'\xe8\x03'

Если ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ΠΎΠ² нСдостаточно для прСдставлСния числа, Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ OverflowError. Π§Ρ‚ΠΎ Π±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ порядок Π±Π°ΠΉΡ‚ΠΎΠ² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ sys.byteorder.


int.from_bytes(bytes, byteorder, *, signed=False):

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΠ΅ число, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ соотвСтствуСт ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ массиву Π±Π°ΠΉΡ‚ΠΎΠ².
ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ bytes ΠΈ byteorder ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ.
bytes Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π±Π°ΠΉΡ‚ΠΎ-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ (строки Π±Π°ΠΉΡ‚ΠΎΠ², массивы Π±Π°ΠΉΡ‚ΠΎΠ², array.array ΠΈ Ρ‚.Π΄.)
byteorder опрСдСляСт Π² ΠΊΠ°ΠΊΠΎΠΌ порядкС Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π±Π°ΠΉΡ‚Ρ‹ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ значСния 'big' — ΠΎΡ‚ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ ΠΊ ΠΌΠ»Π°Π΄ΡˆΠ΅ΠΌΡƒ, 'little' — ΠΎΡ‚ младшСго ΠΊ Ρ‚Π°Ρ€ΡˆΠ΅ΠΌΡƒ.
signed позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ использованиС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для прСдставлСния Ρ†Π΅Π»ΠΎΠ³ΠΎ числа. Если signed=False ΠΈ Π·Π°Π΄Π°Π½ΠΎ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π΅Π»ΠΎΠ΅ число, Ρ‚ΠΎ бросаСтся OverflowError.

>>> int.from_bytes(b'\x00\x7f', byteorder = 'big')
# 127
>>> int.from_bytes(b'\x00\x7f', byteorder = 'little')
# 32512
>>> int.from_bytes(b'\xff\x81', 'big', signed = True)
# -127
>>> int.from_bytes([1, 0], 'big')    #  ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ "массив" Π±Π°ΠΉΡ‚ΠΎΠ²
# 256
>>> int.from_bytes([255, 255], 'big')
# 65535

Π’ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ… | Arduino Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Π’ΠΈΠΏΠ—Π°Π½ΠΈΠΌΠ°Π΅ΠΌΡ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ (Π±Π°ΠΉΡ‚)МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠœΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
boolean1falsetrue
char1-128127
byte10255
int, short2-3276832767
unsigned int2065535
long4-21474836482147483647
unsigned long404294967295
float, double4-3.4028235E+383.4028235E+38
boolean

ЛогичСский Ρ‚ΠΈΠΏ, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 значСния — true (ΠΏΡ€Π°Π²Π΄Π°) ΠΈ false (лоТь). Π’ памяти Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 1 Π±Π°ΠΉΡ‚.

bool a = true;
a = false;
числа
char

Π’ΠΈΠΏ позволяСт Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 1 Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎ-Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ символ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅ 1 Π±Π°ΠΉΡ‚. Для записи символа ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

Π’ памяти хранится число, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ записанному символу Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ASCII, поэтому Π½Π°Π΄ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ арифмСтичСскиС дСйствия.

char a = 'A'; // число 65 ΠΏΠΎ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ASCII
a++; // число 66, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ символу 'B'
char b = 65; // Ρ‚ΠΎΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ символ 'A'

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ это Ρ‚ΠΈΠΏΠ° — знаковая, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ допустимых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ — ΠΎΡ‚ -128 Π΄ΠΎ 127.

byte

Π’ΠΈΠΏ для хранСния ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ числа. БоотвСтствСнно Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‚ 0 Π΄ΠΎ 255.

byte x = 155;
int

ΠŸΠΎΠΆΠ°Π»ΡƒΠΉ самый Ρ‡Π°ΡΡ‚ΠΎΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ для хранСния Ρ†Π΅Π»Ρ‹Ρ… чисСл со Π·Π½Π°ΠΊΠΎΠΌ — integer (Ρ†Π΅Π»ΠΎΠ΅ число). Π—Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 2 Π±Π°ΠΉΡ‚Π° ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ цисла ΠΎΡ‚ -32768 Π΄ΠΎ 32767.

На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Arduino Ρ‚Π°ΠΊΠΆΠ΅ присутствуСт Ρ‚ΠΈΠΏ , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° int.

int y = 10;
unsigned int

Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число, Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ int, 2 Π±Π°ΠΉΡ‚Π°. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ — ΠΎΡ‚ 0 Π΄ΠΎ 65535.

long

Π’ΠΈΠΏ long слуТит для Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ†Π΅Π»Ρ‹Ρ… Π·Π½Π°ΠΊΠΎΠ²Ρ‹Ρ… чисСл. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‚ -2147483648 Π΄ΠΎ 2147483647, Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ Π² памяти ΠΎΠ½ 4 Π±Π°ΠΉΡ‚Π°.

unsigned long

Π‘Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ значСния ΠΎΡ‚ 0 Π΄ΠΎ 4294967295 ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ 4 Π±Π°ΠΉΡ‚Π°.

float

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… чисСл с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (ΠΈΠ»ΠΈ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для нСцСлочислСнных расчСтов. Π’ Arduino ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для считывания Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΏΠΈΠ½ΠΎΠ². Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΎΡ‚ -3.4028235E+38 Π΄ΠΎ 3.4028235E+38,Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ такая пСрСмСнная 4 Π±Π°ΠΉΡ‚Π°.

Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ — 6-7 Π·Π½Π°ΠΊΠΎΠ² послС запятой.

double

Π’ΠΈΠΏ Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° float ΠΈ Π²Π²Π΅Π΄Π΅Π½ для ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ совмСстимости. На ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ‡Π΅ΠΌ Ρƒ float Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ.

string

Π’ΠΈΠΏ для Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ тСкстовых строк. ЯвляСтся массивом символов Ρ‚ΠΈΠΏΠ° char ΠΈ символа ΠΊΠΎΠ½Ρ†Π° строки ‘\0’ Π² послСднСм Π΅Π³ΠΎ элСмСнтС. НС ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с классами string ΠΈ String.

Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ создана ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π° нСсколькими способами:

char str[7]; // объявлСниС пустой строки с Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ 7 символов - 6 ΠΏΠΎΠ΄ строку ΠΈ послСдний - ΠΏΠΎΠ΄ символ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ строки
char str[7] = "qwerty"; // объявлСниС строки с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ
char str[7] = {'q', 'w', 'e', 'r', 't', 'y', '\0'}; // посимвольная инициализация
char str[] = "qwerty"; // Π±ΠΎΠ»Π΅Π΅ удобная инициализация Π±Π΅Π· указания Ρ€Π°Π·ΠΌΠ΅Ρ€Π° - ΠΎΠ½ посчитаСтся автоматичСскиС с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ символа ΠΊΠΎΠ½Ρ†Π° строки 

Если Π·Π°Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ символ ΠΊΠΎΠ½Ρ†Π° строки ΠΏΡ€ΠΈ посимвольной ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ»ΠΈ Π½Π΅ отвСсти ΠΏΠΎΠ΄ Π½Π΅Π³ΠΎ мСсто, Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со строками Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

массив

Массив — это Π½Π°Π±ΠΎΡ€ элСмСнтов ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° с доступом ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΠΏΠΎ индСксу.

int arr[6]; // объявлСниС массива с Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ памяти ΠΏΠΎΠ΄ 6 элСмСнтов Ρ‚ΠΈΠΏΠ° int
int arr[] = {1, 2, 3, 4, 5, 6}; // объявлСниС массива с ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π΅Π³ΠΎ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями, ΠΏΡ€ΠΈ этом Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ нСльзя
char str[] = "qwerty"; // инициализация массива символов - строки   
НумСрация индСксов массива начинаСтся с 0.
int arr[10];
arr[0] = 123; // ΠΏΡ€ΠΈΠΌΠ΅Ρ€ присвоСниС значСния ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ элСмСнту массива
int b = arr[1]; // ΠΏΡ€ΠΈΠΌΠ΅Ρ€ считываниС значСния ΠΈΠ· Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎ счСту элСмСнта массива
void

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово void ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ объявлСнии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, которая Π½Π΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ значСния.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ²

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² — это ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Ρ‚ΠΈΠΏΠ°, ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠΌΡƒ ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠΎΠ² дСлится Π½Π° явноС ΠΈ нСявноС.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ явного привСдСния Ρ‚ΠΈΠΏΠ°:

float a = 7.5;
int b = (int)a; // Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ b Π±ΡƒΠ΄Π΅Ρ‚ записано Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΊ цСлочислСнному Ρ‚ΠΈΠΏΡƒ, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ число 7

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ нСявного привСдСния Ρ‚ΠΈΠΏΠ°:

int a = 1;
if (a) {
  // ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ Π² случаС Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ значСния ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a
}

Условная конструкция if ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° boolean, поэтому цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ a Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊ Ρ‚ΠΈΠΏΠ° boolean.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ явного привСдСния Ρ‚ΠΈΠΏΠ°:

float res = (float)17 / 2; // Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ res Π±ΡƒΠ΄Π΅Ρ‚ сохранСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 8.5, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π±Π΅Π· привСдСния ΠΊ Ρ‚ΠΈΠΏΡƒ float Π² Π½Π΅ΠΉ Π±Ρ‹ оказалось Π±Ρ‹ 8.0  

Π’ΠΈΠΏΡ‹ byte, short, int, long — Java ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

ЦСлочислСнныС числа прСдставлСны Π² языкС Java Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ Ρ‚ΠΈΠΏΠ°ΠΌΠΈ — byte, short, int ΠΈ long.

intΒ β€” основной цСлочислСнный Ρ‚ΠΈΠΏ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π² Java ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Π›ΡŽΠ±ΠΎΠ΅Β Ρ†Π΅Π»ΠΎΠ΅ число Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ компилятором ΠΊΠ°ΠΊ число Ρ‚ΠΈΠΏΠ° int.Β Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² качСствС счётчика Ρ†ΠΈΠΊΠ»ΠΎΠ², индСксов массивов ΠΈ индСксов символов Π² строках.

longΒ β€” цСлочислСнный Ρ‚ΠΈΠΏ содСрТащий практичСски бСсконСчноС количСство Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² случаях, Π³Π΄Π΅ числа прСвосходят 2 ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄Π° ΠΈ стандартного int ΡƒΠΆΠ΅ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² повсСднСвной ΠΆΠΈΠ·Π½ΠΈ для создания ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

byteΒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ сСти, записи ΠΈ чтСния ΠΈΠ· Ρ„Π°ΠΉΠ»Π°. Π’ матСматичСских опСрациях, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ.

shortΒ β€” самый Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ‚ΠΈΠΏ Π² Java, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² цСлях экономии памяти.

Π’ΠΈΠΏ Π Π°Π·ΠΌΠ΅Ρ€ Π² Π±Π°ΠΉΡ‚Π°Ρ… Π Π°Π·ΠΌΠ΅Ρ€ Π² Π±ΠΈΡ‚Π°Ρ… Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ значСния (ΠΎΡ‚..Π΄ΠΎ) Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
byte 1Β  8Β  -128..127 0
short 2Β  16Β  -32,768..32,767 0
int 4 32Β  -2,147,483,648..2,147,483,647 0
long 8 64 -9,223,372,036,854,775,808. 308 – это ΠΊΠΎΠ³Π΄Π° x ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ inf (ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ бСсконСчноС).

Π― Π½Π΅ ΠΌΠΎΠ³Ρƒ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, любоС объяснСниС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ†Π΅Π½Π΅Π½ΠΎ. Бпасибо!

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с Ρ†Π΅Π»Ρ‹ΠΌΠΈ числами Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ доступной ΠΏΠ°ΠΌΡΡ‚ΡŒ (Π² этом случаС процСсс остановится ΠΈΠ»ΠΈ машина замСнится Π΄ΠΎ смСрти):

 x = 1000 while (1000 * x != x): x = 1000 * x 

ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»Ρ‹Π΅ числа Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π² python, ΠΎΠ½ΠΈ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ всю ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ссли ΠΎΠ½Π° доступна (Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ адрСсов процСсса).

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ ΡƒΠΌΠ½ΠΎΠΆΠ°Π΅Ρ‚Π΅ своС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π΅Π΄Π΅Π», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, 8 Π±Π°ΠΉΡ‚ΠΎΠ² ( float python ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ double Ρ‚ΠΈΠΏ C)

Достигнув максимального значСния, ΠΎΠ½ пСрСполняСтся Π΄ΠΎ inf (бСсконСчный), ΠΈ Π² этом случаС

 1000 * inf == inf 

нСбольшая интСрактивная дСмонстрация:

 >>> f = 10.0**308 >>> f*2 inf >>> f*2 == f*1000 True >>> 

Из этой ΡΡ‚Π°Ρ‚ΡŒΠΈ:

Когда пСрСмСнная инициализируСтся цСлочислСнным Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ становится Ρ†Π΅Π»Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΈ пСрСмСнная ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π½Π΅Π³ΠΎ (ссылаСтся Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚).

Python устраняСт эту ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρƒ, сущСствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ цСлочислСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π˜ΠΌΠ΅Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ ограничСния? Π£ ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π°Π½Π½ΠΈΡ… вСрсий Python Π±Ρ‹Π» ΠΏΡ€Π΅Π΄Π΅Π», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ·ΠΆΠ΅ Π±Ρ‹Π» ΡƒΠ΄Π°Π»Π΅Π½. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ объСмом памяти, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρƒ вас Π΅ΡΡ‚ΡŒ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ астрономичСскоС Ρ†Π΅Π»ΠΎΠ΅ число 5000 Π·Π½Π°ΠΊΠΎΠ², ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉΡ‚Π΅. ВвСсти Π΅Π³ΠΎ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ это Π±ΡƒΠ΄Π΅Ρ‚ СдинствСнной ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ! Как Python всС это Π΄Π΅Π»Π°Π΅Ρ‚? Он автоматичСски управляСт Ρ†Π΅Π»Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ установлСн Π½Π° 32 Π±ΠΈΡ‚Π° для скорости. Если ΠΎΠ½ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 32 Π±ΠΈΡ‚Π°, Ρ‚ΠΎ Python ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ свой Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ нСобходимости Π΄ΠΎ ΠΏΡ€Π΅Π΄Π΅Π»Π° RAM.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 1 Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ.

Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… | Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Microsoft

  • 2 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅

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

32-разрядныС ΠΈ 64-разрядныС компиляторы Microsoft C ++ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ Ρ‚ΠΈΠΏΡ‹, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄Π°Π»Π΅Π΅ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

  • int ( Π±Π΅Π· Π·Π½Π°ΠΊΠ° int )

  • __int8 ( Π±Π΅Π· Π·Π½Π°ΠΊΠ° __int8 )

  • __int16 ( Π±Π΅Π· Π·Π½Π°ΠΊΠ° __int16 )

  • __int32 ( Π±Π΅Π· Π·Π½Π°ΠΊΠ° __int32 )

  • __int64 ( Π±Π΅Π· Π·Π½Π°ΠΊΠ° __int64 )

  • ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ ( Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ )

  • Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ( Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ )

  • Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ( Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ )

Если Π΅Π³ΠΎ имя начинаСтся с Π΄Π²ΡƒΡ… Π·Π½Π°ΠΊΠΎΠ² подчСркивания ( __ ), Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… нСстандартный.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅, ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Π’ΠΈΠΏ НазваниС Π±Π°ΠΉΡ‚Π° Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΈΠΌΠ΅Π½Π° Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ 4 подписанный -2 147 483 648 Π΄ΠΎ 2 147 483 647
Ρ†Π΅Π»ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ° 4 Π±Π΅Π· Π·Π½Π°ΠΊΠ° 0 Π΄ΠΎ 4 294 967 295
__int8 1 символ -128 до 127
Π±Π΅Π· Π·Π½Π°ΠΊΠ° __int8 1 символ Π±Π΅Π· Π·Π½Π°ΠΊΠ° ΠΎΡ‚ 0 Π΄ΠΎ 255
__int16 2 ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ , ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ , подписанный ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ -32 768 Π΄ΠΎ 32 767
Π±Π΅Π· Π·Π½Π°ΠΊΠ° __int16 2 Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ , Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ int 0 Π΄ΠΎ 65 535
__int32 4 подпись , подписана , Π²Π½ΡƒΡ‚Ρ€ -2 147 483 648 Π΄ΠΎ 2 147 483 647
Π±Π΅Π· Π·Π½Π°ΠΊΠ° __int32 4 Π±Π΅Π· Π·Π½Π°ΠΊΠ° , Π±Π΅Π· Π·Π½Π°ΠΊΠ° int 0 Π΄ΠΎ 4 294 967 295
__int64 8 Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ , подписанный Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ -9,223,372,036,854,775,808 Π΄ΠΎ 9,223,372,036,854,775,807
Π±Π΅Π· Π·Π½Π°ΠΊΠ° __int64 8 Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ 0 Π΄ΠΎ 18 446 744 073 709 551 615
Π±ΠΎΠ»Ρ‚ 1 Π½Π΅Ρ‚ Π»ΠΎΠΆΠ½ΠΎ ΠΈΠ»ΠΈ истинно
символ 1 Π½Π΅Ρ‚ ΠΎΡ‚ -128 Π΄ΠΎ 127 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

ΠΎΡ‚ 0 Π΄ΠΎ 255 ΠΏΡ€ΠΈ компиляции с использованиСм / J

символ со Π·Π½Π°ΠΊΠΎΠΌ 1 Π½Π΅Ρ‚ -128 Π΄ΠΎ 127
символ Π±Π΅Π· Π·Π½Π°ΠΊΠ° 1 Π½Π΅Ρ‚ ΠΎΡ‚ 0 Π΄ΠΎ 255
ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ 2 ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ , подписанноС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ -32 768 Π΄ΠΎ 32 767
ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ° 2 Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ int 0 Π΄ΠΎ 65 535
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ 4 Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ int , подписанный Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ int -2 147 483 648 Π΄ΠΎ 2 147 483 647
Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ° 4 Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ 0 Π΄ΠΎ 4 294 967 295
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ 8 Π½Π΅Ρ‚ (Π½ΠΎ эквивалСнтно __int64 ) -9,223,372,036,854,775,808 Π΄ΠΎ 9,223,372,036,854,775,807
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ 8 Π½Π΅Ρ‚ (Π½ΠΎ эквивалСнтно Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ __int64 ) 0 Π΄ΠΎ 18 446 744 073 709 551 615
пСрСчислСниС Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π½Π΅Ρ‚
ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ 4 Π½Π΅Ρ‚ 3.4E +/- 38 (7 Ρ†ΠΈΡ„Ρ€)
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ 8 Π½Π΅Ρ‚ 1.7E +/- 308 (15 Ρ†ΠΈΡ„Ρ€)
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°ΠΊ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ Π½Π΅Ρ‚ Π’ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ
wchar_t 2 __wchar_t 0 Π΄ΠΎ 65 535

Π’ зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, пСрСмСнная __wchar_t ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΈΠΏ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… символов ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²Ρ‹Ρ… символов.Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ прСфикс L ΠΏΠ΅Ρ€Π΅Π΄ символьной ΠΈΠ»ΠΈ строковой константой для обозначСния константы Ρ‚ΠΈΠΏΠ° Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… символов.

со Π·Π½Π°ΠΊΠΎΠΌ ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ° — это ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌ цСлочислСнным Ρ‚ΠΈΠΏΠΎΠΌ, ΠΊΡ€ΠΎΠΌΠ΅ bool . ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ char , signed char ΠΈ unsigned char — это Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° для Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ², ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.

Π’ΠΈΠΏΡ‹ int ΠΈ unsigned int ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π±Π°ΠΉΡ‚Π°. Однако пСрСносимый ΠΊΠΎΠ΄ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π°Π²ΠΈΡΠ΅Ρ‚ΡŒ ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° int , ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ стандарт языка допускаСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ это зависСло ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.

C / C ++ Π² Visual Studio Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. __int8, __int16, __int32, __int64 ΠΈ цСлочислСнныС ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹.

Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ограничСниях Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° см. ВстроСнныС Ρ‚ΠΈΠΏΡ‹.

Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ пСрСчисляСмых Ρ‚ΠΈΠΏΠΎΠ² зависит ΠΎΡ‚ языкового контСкста ΠΈ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ² компилятора. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. ОбъявлСния ΠΈ пСрСчислСния пСрСчислСний C.

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

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова
ВстроСнныС Ρ‚ΠΈΠΏΡ‹

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ d1 = 123,4;
// Ρ‚ΠΎ ΠΆΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ d1, Π½ΠΎ Π² ΡΠΊΡΠΏΠΎΠ½Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΌ прСдставлСнии
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ d2 = 1.234e2;
float f1 = 123.4f;
 
Π‘ΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΈ строковыС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Ρ‹

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

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

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

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

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

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

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

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

long creditCardNumber = 1234_5678_9012_3456L;
long socialSecurityNumber = 999_99_9999L;
float pi = 3.14_15F;
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ hexBytes = 0xFF_EC_DE_5E;
Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ слова = 0xCAFE_BABE;
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ maxLong = 0x7fff_ffff_ffff_ffffL;
byte nybbles = 0b0010_0101;
Π΄Π»ΠΈΠ½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ = 0b11010010_01101001_10010100_10010010;
 

Π—Π½Π°ΠΊΠΈ подчСркивания ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ†ΠΈΡ„Ρ€Π°ΠΌΠΈ; нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… мСстах:

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

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

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

// ОК (дСсятичный Π»ΠΈΡ‚Π΅Ρ€Π°Π»)
ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» x1 = 5_2;
//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  Π’ ΠΊΠΎΠ½Ρ†Π΅ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° 
int x2 = 52_;
// ОК (дСсятичный Π»ΠΈΡ‚Π΅Ρ€Π°Π»)
int x3 = 5_______2;

//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  Π² прСфиксС систСмы счислСния 0x 
int x4 = 0_x52;
//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  Π² Π½Π°Ρ‡Π°Π»Π΅ числа 
int x5 = 0x_52;
// ОК (ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹ΠΉ Π»ΠΈΡ‚Π΅Ρ€Π°Π»)
int x6 = 0x5_2;
//  ΠΠ΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ: нСльзя ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ подчСркивания 
//  Π² ΠΊΠΎΠ½Ρ†Π΅ числа 
int x7 = 0x52_;
 

Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² Ρ‚ΠΈΠΏΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΡ… макросы Π² C ++

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π² ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ максимальноС ΠΈΠ»ΠΈ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, Π½ΠΎ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΎΠ³ΠΎ большого ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ числа Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ.ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² C ++ Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ макросы для прСдставлСния этих чисСл, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ присвоСны ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π±Π΅Π· Π²Π²ΠΎΠ΄Π° Ρ†Π΅Π»ΠΎΠ³ΠΎ числа. Бписок Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ… ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½ΠΈΠΆΠ΅.

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠœΠ°ΠΊΡ€ΠΎΡ для минимального значСния ΠœΠ°ΠΊΡ€ΠΎΡ для максимального значСния
char ΠΎΡ‚ -128 Π΄ΠΎ +127 CHAR_MIN CHAR_MAX
ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ символ ΠΎΡ‚ -128 Π΄ΠΎ +127 SCHAR_MIN SCHAR_MAX
символ Π±Π΅Π· Π·Π½Π°ΠΊΠ° ΠΎΡ‚ 0 Π΄ΠΎ 255 0 UCHAR_MAX

ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ int -32768 Π΄ΠΎ +32767 SHRT_MIN SHRT_MAX
unsigned short int 0 Π΄ΠΎ 65535 0 USHRT_MAX
ΠΎΡ‚ -2147483648 Π΄ΠΎ +2147483647 INT_MIN INT_MAX
Ρ†Π΅Π»ΠΎΠ΅ число Π±Π΅Π· Π·Π½Π°ΠΊΠ° ΠΎΡ‚ 0 Π΄ΠΎ 4294967295 0 UINT_MAX
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ -9223372036854775808 Π΄ΠΎ +9223372036854775807 LONG_MIN LONG_MAX
Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚ 0 Π΄ΠΎ 18446744073709551615 0 ULONG_MAX
Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΎΡ‚ -9223372036854775808 Π΄ΠΎ +9223372036854775807 LLONG_MIN LLONG_MAX
unsigned long long int 0 Π΄ΠΎ 18446744073709551615 0 ULLONG_MAX

ΠΏΠΎΠΏΠ»Π°Π²ΠΎΠΊ 1.17549e-38 Π΄ΠΎ 3.40282e + 38 FLT_MIN FLT_MAX
с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) ΠΎΡ‚ -1.17549e-38 Π΄ΠΎ -3.40282e + 38 -FLT_MIN -FLT_MAX
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ 2.22507e-308 Π΄ΠΎ 1.79769e + 308 DBL_MIN DBL_MAX
Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ (ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ) -2.22507e-308 Π΄ΠΎ -1.79769e + 308 -DBL_MIN -DBL_MAX
 

#include

#include // для макросов Ρ‚ΠΈΠΏΠ° int, char

#include // для макросов с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой, Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… макросов

с использованиСм пространства ΠΈΠΌΠ΅Π½ std;

int main ()

{

cout << "char колСблСтся ΠΎΡ‚:" << CHAR_MIN << "Π΄ΠΎ" << CHAR_MAX;

cout << "\ n \ nΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ символов ΠΎΡ‚:" << SCHAR_MIN << "Π΄ΠΎ" << SCHAR_MAX;

cout << "\ n \ n Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ символ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚:" << 0 << "Π΄ΠΎ" << UCHAR_MAX;

cout << "\ n \ n \ nΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚:" << SHRT_MIN << "Π΄ΠΎ" << SHRT_MAX;

cout << "\ n \ n Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚:" << 0 << "Π΄ΠΎ" << USHRT_MAX;

cout << "\ n \ nint Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ ΠΎΡ‚:" << INT_MIN << "Π΄ΠΎ" << INT_MAX;

cout << "\ n \ n Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚:" << 0 << "Π΄ΠΎ" << UINT_MAX;

cout << "\ n \ nΠ΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚:" << LONG_MIN << "Π΄ΠΎ" << LONG_MAX;

cout << "\ n \ n Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚:" << 0 << "Π΄ΠΎ" << ULONG_MAX;

cout << "\ n \ nΠ΄Π»ΠΈΠ½Π½ΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚:" << LLONG_MIN << "Π΄ΠΎ" << LLONG_MAX;

cout << "\ n \ n Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚:" << 0 << "Π΄ΠΎ" << ULLONG_MAX;

cout << "\ n \ n \ nfloat Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚:" << FLT_MIN << "Π΄ΠΎ" << FLT_MAX;

cout << "\ n \ nΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой:" << -FLT_MIN << "Π΄ΠΎ" << -FLT_MAX;

cout << "\ n \ nd double находится Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚:" << DBL_MIN << "Π΄ΠΎ" << DBL_MAX;

cout << "\ n \ nΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ ΠΎΡ‚:" << -DBL_MIN << "Π΄ΠΎ" << + DBL_MAX;

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ 0;

}

Π’Ρ‹Ρ…ΠΎΠ΄:

char Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚: -128 Π΄ΠΎ 127

Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… символов: ΠΎΡ‚ -128 Π΄ΠΎ 127

Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ символ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚: 0 Π΄ΠΎ 255


short int Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚: -32768 Π΄ΠΎ 32767

Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚: 0 Π΄ΠΎ 65535

int Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚: -2147483648 Π΄ΠΎ 2147483647

Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚: 0 Π΄ΠΎ 4294967295

long int Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚: -9223372036854775808 Π΄ΠΎ 9223372036854775807

Π±Π΅Π·Π·Π½Π°ΠΊΠΎΠ²ΠΎΠ΅ Π΄Π»ΠΈΠ½Π½ΠΎΠ΅ Ρ†Π΅Π»ΠΎΠ΅ число ΠΎΡ‚: 0 Π΄ΠΎ 18446744073709551615

long long int Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚: -9223372036854775808 Π΄ΠΎ 9223372036854775807

unsigned long long int Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚: 0 Π΄ΠΎ 18446744073709551615


float Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‚: 1.17549e-38 Π΄ΠΎ 3.40282e + 38

ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ запятой: ΠΎΡ‚ -1.17549e-38 Π΄ΠΎ -3.40282e + 38

Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ ΠΎΡ‚: 2.22507e-308 Π΄ΠΎ 1.79769e + 308

ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ ΠΎΡ‚: -2,22507e-308 Π΄ΠΎ 1,79769e + 308
 

Автором этой ΡΡ‚Π°Ρ‚ΡŒΠΈ являСтся Manjeet Singh . Если Π²Π°ΠΌ нравится GeeksforGeeks ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ внСсти свой Π²ΠΊΠ»Π°Π΄, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΡ‚Π°Ρ‚ΡŒΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ provide.geeksforgeeks.org ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π΅Π΅ ΠΏΠΎ элСктронной ΠΏΠΎΡ‡Ρ‚Π΅ Π½Π° [email protected]. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠ°ΠΊ ваша ΡΡ‚Π°Ρ‚ΡŒΡ появляСтся Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ страницС GeeksforGeeks, ΠΈ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Π³ΠΈΠΊΠ°ΠΌ.

ΠΠ°ΠΏΠΈΡˆΠΈΡ‚Π΅, поТалуйста, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ссли Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚Π΅ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ΅ ΠΈΠ»ΠΈ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅, обсуТдаСмой Π²Ρ‹ΡˆΠ΅.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΡŽ читатСля! НС ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°ΠΉΡ‚Π΅ ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ сСйчас. ΠžΡΠ²ΠΎΠΉΡ‚Π΅ всС Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΡΠΎΡ€Π΅Π²Π½ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ программирования с курсом Competitive Programming Live .


IntRange - язык программирования Kotlin

associateByTo

ЗаполняСт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ назначСния ΠΏΠ°Ρ€Π°ΠΌΠΈ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ прСдоставляСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ keySelector, примСняСмой ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ - это сам элСмСнт.

fun> Iterable .associateByTo (
ΠΏΡƒΠ½ΠΊΡ‚ назначСния: M,
keySelector: (T) -> K
): M

ЗаполняСт ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΡƒΡŽ ΠΊΠ°Ρ€Ρ‚Ρƒ назначСния ΠΏΠ°Ρ€Π°ΠΌΠΈ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ прСдоставляСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ keySelector ΠΈ Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ прСдоставляСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ valueTransform, примСняСмой ΠΊ элСмСнтам Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

fun> Iterable .associateByTo (
destination: M,
keySelector: (T) -> K,
valueTransform: (T) -> V
): M
Π³Ρ€ΡƒΠΏΠΏΠ°

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ элСмСнты исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠΌΡƒ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ keySelector. примСняСтся ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ°Ρ€Ρ‚Ρƒ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ ΠΊΠ»ΡŽΡ‡ связан со списком ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов.

fun Iterable .groupBy (
keySelector: (T) -> K
): Map >

Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΠ΅Ρ‚ значСния, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ valueTransform, примСняСмыС ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ элСмСнту исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ. ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½ΠΎΠΌΡƒ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ keySelector, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΊ элСмСнту ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠ°Ρ€Ρ‚Ρƒ, Π³Π΄Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ Π³Ρ€ΡƒΠΏΠΏΡ‹ связан со списком ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ.

fun Iterable .groupBy (
keySelector: (T) -> K,
valueTransform: (T) -> V
): Map >
минус

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список, содСрТащий всС элСмСнты исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ Π±Π΅Π· ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ вхоТдСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список, содСрТащий всС элСмСнты исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ элСмСнтов, содСрТащихся Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ массивС elements.

operator fun Iterable .minus (
элСмСнтов: Array
): List

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список, содСрТащий всС элСмСнты исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ элСмСнтов, содСрТащихся Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ элСмСнтов.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список, содСрТащий всС элСмСнты исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΡ€ΠΎΠΌΠ΅ элСмСнтов, содСрТащихся Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ элСмСнтов.

плюс

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список, содСрТащий всС элСмСнты исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ элСмСнт.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список, содСрТащий всС элСмСнты исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ всС элСмСнты Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ массива elements.

operator fun Iterable .plus (
элСмСнтов: Array
): List

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список, содСрТащий всС элСмСнты исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ всС элСмСнты Π΄Π°Π½Π½ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ элСмСнтов.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список, содСрТащий всС элСмСнты исходной ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ всС элСмСнты Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ элСмСнтов.

одномСстный

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ СдинствСнный элСмСнт ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли коллСкция пуста ΠΈΠ»ΠΈ содСрТит Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ элСмСнта.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ СдинствСнный элСмСнт, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½ΠΎΠΌΡƒ ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚Ρƒ, ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ссли ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΡ… элСмСнтов Π½Π΅Ρ‚ ΠΈΠ»ΠΈ большС ΠΎΠ΄Π½ΠΎΠ³ΠΎ.

fun Iterable .single (ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚: (T) -> Boolean): T
молния

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΏΠ°Ρ€, составлСнных ΠΈΠ· элСмСнтов этой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ массива с Ρ‚Π΅ΠΌ ΠΆΠ΅ индСксом.Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ список ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ самой ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

infix fun Iterable .zip (
other: Array
): List >

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

fun Iterable.zip (
other: Array ,
transform: (a: T, b: R) -> V
): List

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ список ΠΏΠ°Ρ€, созданных ΠΈΠ· элСмСнтов этой ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ с Ρ‚Π΅ΠΌ ΠΆΠ΅ индСксом. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π½Ρ‹ΠΉ список ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ самой ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ.

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

fun Iterable .zip (
other: Iterable ,
transform: (a: T, b: R) -> V
): List

MySQL :: Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ руководство MySQL 8.0 :: 11.1.2 ЦСлочислСнныС Ρ‚ΠΈΠΏΡ‹ (Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅)

11.1.2 ЦСлочислСнныС Ρ‚ΠΈΠΏΡ‹ (Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) - INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT

MySQL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ стандартныС цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ SQL. INTEGER (ΠΈΠ»ΠΈ INT ) ΠΈ ΠœΠΠ›Π«Π™ .Как Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ стандарта, MySQL Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ цСлочислСнныС Ρ‚ΠΈΠΏΡ‹ TINYINT , MEDIUMINT ΠΈ Π‘ΠžΠ›Π¬Π¨ΠžΠ™ . Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ цСлочислСнного Ρ‚ΠΈΠΏΠ°.

Π’Π°Π±Π»ΠΈΡ†Π° 11.1 Π’Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ для цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ², ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… MySQL

Π’ΠΈΠΏ ΠŸΠ°ΠΌΡΡ‚ΡŒ (Π±Π°ΠΉΡ‚Ρ‹) МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ подписано МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ° МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ со Π·Π½Π°ΠΊΠΎΠΌ МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π±Π΅Π· Π·Π½Π°ΠΊΠ°
TINYINT 1 -128 0 127 255
ΠœΠΠ›Π«Π™ 2 -32768 0 32767 65535
Π‘Π Π•Π”ΠΠ˜Π™ 3 -8388608 0 8388607 16777215
ИНВ 4 -2147483648 0 2147483647 4294967295
BIGINT 8 -2 63 0 2 63 -1 2 64 -1


Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Python ()

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ‚ΠΎΡ€ range () ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π΅ Ρ„ΠΎΡ€ΠΌΡ‹ опрСдСлСния:

Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (стоп)
Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Π½Π°Ρ‡Π°Π»ΠΎ, останов [, шаг]) 

Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ () ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

range () ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π² основном Ρ‚Ρ€ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΎΠ±ΠΎΠΈΡ… опрСдСлСниях:

  • Π½Π°Ρ‡Π°Π»ΠΎ - Ρ†Π΅Π»ΠΎΠ΅ число, начиная с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… чисСл
  • стоп - Ρ†Π΅Π»ΠΎΠ΅ число, ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π»Ρ‹Ρ… чисСл.
    Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ†Π΅Π»Ρ‹Ρ… чисСл заканчиваСтся Π½Π° ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠ΅ стоп - 1 .
  • шаг (Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ) - цСлочислСнноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ Ρ†Π΅Π»Ρ‹ΠΌ числом Π² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ()

range () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ нСизмСняСмый ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ чисСл Π² зависимости ΠΎΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΉ:

Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (стоп)

  • Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл, начиная с 0 Π΄ΠΎ стоп - 1
  • Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΡƒΡΡ‚ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ссли стоп - это ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ»ΠΈ 0 .

Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (запуск, останов [, шаг])

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ рассчитываСтся ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡƒΠ»Π΅ с Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ограничСниями:

r [n] = Π½Π°Ρ‡Π°Π»ΠΎ + шаг * n (ΠΊΠ°ΠΊ для ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ, Ρ‚Π°ΠΊ ΠΈ для ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ шага)
Π³Π΄Π΅, n> = 0 ΠΈ r [n]  = 0 ΠΈ r [n]> stop (для ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ шага) 
  • (Если Π½Π΅Ρ‚ , шаг ) Π¨Π°Π³ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π²Π΅Π½ 1. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ чисСл, начиная с start ΠΈ заканчивая stop - 1 .
  • (Ссли шаг Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ) Π’Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ValueError ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ
  • (Ссли шаг Π½Π΅ Ρ€Π°Π²Π΅Π½ Π½ΡƒΠ»ΡŽ) ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚, выполняСтся Π»ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ значСния ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π² соотвСтствии с Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΎΠΉ
    Если это Π½Π΅ соотвСтствуСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡŽ значСния, возвращаСтся ΠŸΡƒΡΡ‚Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ .

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1: Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² Python?

  # пустой Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (0)))

# использованиС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° (стоп)
ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ (список (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (10)))

# использованиС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° (Π½Π°Ρ‡Π°Π»ΠΎ, остановка)
print (список (диапазон (1, 10)))  

Π’Ρ‹Ρ…ΠΎΠ΄

  []
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9] 
 

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠœΡ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π»ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² список Python, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ range () Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ запросу.

Однако ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹ΠΉ конструктором Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Ρ‚Π°ΠΊΠΆΠ΅ доступСн ΠΏΠΎ Π΅Π³ΠΎ индСксу. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ индСксы.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΏΠΎ индСксу ΠΊΠ°ΠΊ:

rangeObject [индСкс] 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2: Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ список Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ числами с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ range ()

  Π½Π°Ρ‡Π°Π»ΠΎ = 2
стоп = 14
step = 2

print (list (range (start, stop, step)))  

Π’Ρ‹Ρ…ΠΎΠ΄

  [2, 4, 6, 8, 10, 12] 
 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3: Как range () Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ шагом?

  Π½Π°Ρ‡Π°Π»ΠΎ = 2
стоп = -14
шаг = -2

print (list (range (start, stop, step)))

# ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ значСния Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ
print (list (Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ (Π½Π°Ρ‡Π°Π»ΠΎ, 14, шаг)))  

Π’Ρ‹Ρ…ΠΎΠ΄

  [2, 0, -2, -4, -6, -8, -10, -12]
[] 
 

ЦСлочислСнныС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ цСлочислСнными Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°ΠΌΠΈ.Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ситуациях оснастки ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ модСлирования, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π°.

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Int Range ΠΊ вашСй сцСнС, Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΎΠΊΠ½Π° просмотра Schematic Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ Add ... , Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ Int Range Π΄Π²Π°ΠΆΠ΄Ρ‹ Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Окно просмотра схСмы доступно Π² ΠΌΠ°ΠΊΠ΅Ρ‚Π΅ Настройка ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ ΠΈΠ· строки мСню, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠœΠ°ΠΊΠ΅Ρ‚ > ΠŸΠ°Π»ΠΈΡ‚Ρ€Ρ‹ > Π‘Ρ…Π΅ΠΌΠ° .Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ см. Окно просмотра схСмы.

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Int Range Bounds ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ цСлочислСнный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈ Π΄Π°Π΅Ρ‚ Π²Π°ΠΌ минимальноС ΠΈ максимальноС значСния Π² этом Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅.

Π’ ΠΏΠΎΠ»Π΅ Int Range Bound Properties Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ цСлочислСнный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² ΠΏΠΎΠ»Π΅ Int Range .

МинимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΈ МаксимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°Π½Π°Π»ΠΎΠ² Π·Π°ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π² соотвСтствии с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Int Range Bounds Minimum Value слуТит Π² качСствС Test Value для ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Int Range Test, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, управляСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ Polygon Bevel :

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Int Range Clamp ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ значСниями Minimum ΠΈ Maximum .ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ этого ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ°Π½Π°Π» Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½ΠΈΠΆΠ΅ минимального значСния ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅ максимального значСния .

Π’ ΠΏΠΎΠ»Π΅ Β«ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Β» Бвойства Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ цСлочислСнный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² ΠΏΠΎΠ»Π΅ Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ минимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ максимальноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ .

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ†Π΅Π»Ρ‹Ρ… чисСл 0-63 ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ 25-40 .На ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π½ΠΈΠΆΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Output value Int Range Clamp опрСдСляСт Π²Ρ‹Π±ΠΎΡ€ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Polygon Bevel , ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΊ сСткС Plane .

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Int Range Merge позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄Π²Π° цСлочислСнных Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΈΡ… Π² ΠΎΠ΄ΠΈΠ½.

Π’ ΠΏΠΎΠ»Π΅ Int Range Merge Properties Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ Π΄Π²Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° для объСдинСния Π² поля Int Range A ΠΈ Int Range B .

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Output ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Int Range Merge опрСдСляСт Π²Ρ‹Π±ΠΎΡ€ для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Polygon Bevel , ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Π½ΠΎΠΉ ΠΊ сСткС Plane (2) .

ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Int Range Test позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ цСлочислСнный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈ Test Value ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π»ΠΈΠ±ΠΎ истину, Π»ΠΈΠ±ΠΎ лоТь Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, являСтся Π»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.

Π’ ΠΏΠΎΠ»Π΅ «ВСст Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» Β» Π½Π° ΠΏΡ€Π°Π²ΠΎΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ цСлочислСнный Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π² ΠΏΠΎΠ»Π΅ Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» .Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ввСсти Test Value ΠΈΠ»ΠΈ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ этим ΠΊΠ°Π½Π°Π»ΠΎΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°. Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΊΠ°Π½Π°Π» управляСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Int Range Bounds .

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ тСстовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Int Range Test Modifier опрСдСляСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Int Range Bounds.Π’Ρ‹Ρ…ΠΎΠ΄ Result ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° Int Range Test , Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, запускаСт ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ Polygon Bevel . Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ находится Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅, опСрация примСняСтся ΠΊ сСткС. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС опСрация ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ.

.
ΠžΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *

© 2019 Π¨Ρ‚ΠΈΡ€Π»ΠΈΡ† Π‘Π΅Ρ‚ΡŒ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… салонов Π² ΠŸΠ΅Ρ€ΠΌΠΈ

Цифровая ΠΏΠ΅Ρ‡Π°Ρ‚ΡŒ, Ρ†Π²Π΅Ρ‚Π½ΠΎΠ΅ ΠΈ Ρ‡Π΅Ρ€Π½ΠΎ-Π±Π΅Π»ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², сканированиС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ризография Π² ΠŸΠ΅Ρ€ΠΌΠΈ.