Целое (тип данных)

Поделись знанием:
Перейти к: навигация, поиск

Целое, целочисленный тип данных (англ. Integer), в информатике — один из простейших и самых распространённых типов данных в языках программирования. Служит для представления целых чисел.

Множество чисел этого типа представляет собой конечное подмножество бесконечного множества целых чисел, ограниченное максимальным и минимальным значениями.

В программировании различают беззнаковые целые числа и целые числа со знаком. Знак числа обычно кодируется старшим битом машинного слова. Традиционно, если старший бит равен 1, то число считается отрицательным, только, если оно не определено как беззнаковое.

Количество чисел в машинном изображении множества целых чисел зависит от длины машинного слова, обычно выражаемой в битах. Например, при длине машинного слова 1 байт (8 бит) диапазон представимых целых чисел со знаком от -128 до 127. В беззнаковом формате байтовое представление числа будет от 0 до 255 (28 - 1). Если используется 32-разрядное машинное слово, то целое со знаком будет представлять значения от −2 147 483 648 (-231) до 2 147 483 647 (231−1); всего 1 0000 000016 (4 294 967 29610) возможных значений.

Ограничение длины машинного слова, обусловленное конкретной аппаратной реализацией того или иного компьютера, не препятствие для обработки ими весьма длинных в битах представлений целых чисел, достигаемое усложнением программных алгоритмов. Естественное ограничение - конечность ёмкости памяти и разумное время на исполнение.

Целые числа и вычисления с целыми числами в современных компьютерах имеют очень важное значение (в подавляющем количестве приложений занимают меньше ресурсов процессора, чем, арифметика с плавающей точкой). Вся адресная арифметика и операции с индексами массивов основаны на целочисленных операциях.





Представление

В памяти типовой компьютерной системы целое число представлено в виде цепочки битов фиксированного (кратного 8) размера. Эта последовательность нулей и единиц — не что иное, как двоичная запись числа, поскольку обычно для представления чисел в современной компьютерной технике используется позиционный двоичный код. Диапазон целых чисел, как правило, определяется количеством байтов в памяти компьютера, отводимых под одну переменную.

Многие языки программирования предлагают выбор между короткими (англ. short), длинными (англ. long) и целыми стандартной длины. Длина стандартного целого типа, как правило, совпадает с размером машинного слова на целевой платформе. Для 16-разрядных операционных систем — этот тип (int) составляет 2 байта и совпадает с типом short int (можно использовать как short, опуская слово int), для 32-разрядных операционных систем он будет равен 4 байтам и совпадает с длинным целым long int (можно использовать как long, опуская слово int), и в этом случае будет составлять 4 байта. Короткое целое short int, для 16-разрядных операционных систем, 32-разрядных операционных систем, и для большинства 64-разрядных операционных систем составляет — 2 байта. Также в некоторых языках может использоваться тип данных двойное длинное long long, который составляет 8 байт.

Для 64-разрядных операционных систем учитывая разность моделей данных (LP64, LLP64, ILP64), представление целого типа на разных моделях данных может отличаться между собой. Тип int и long может составлять как 4, так и 8 байт.

Стоит отметить, что каждый язык программирования реализует свою сигнатуру представления целых чисел, которая может отличатся от международных стандартов, но обязана его/их поддерживать. К примеру можно отнести кросс-платформенную библиотеку Qt, где целое представляется типом qintX и quintX, где X-8,16,32,64.

Целые типы подразделяются на беззнаковые (англ. unsigned) и знаковые (англ. signed).

Беззнаковые целые

Беззнаковые целые представляют только неотрицательные числа, при этом все разряды кода используются для представления значения числа и максимальное число соответствует единичным значениям кода во всех разрядах: 111…111. m-байтовая переменная целого типа без знака, очевидно, принимает значения от 0 до +28m−1.

В C и C++ для обозначения беззнаковых типов используется префикс unsigned. В C# в качестве показателя беззнаковости используется префикс u (англ. unsigned). Например, для объявления беззнакового целого, равного по размеру одному машинному слову используется тип uint.

Беззнаковые целые, в частности, используются для адресации памяти, представления символов.

Иногда в литературе[1] встречаются рекомендации не использовать тип беззнаковые целые, поскольку он может быть не реализован процессором компьютера, однако вряд ли этот совет следует считать актуальным — большинство современных процессоров (в том числе x86-совместимые[2]) одинаково хорошо работают как со знаковыми, так и с беззнаковыми целыми.

В некоторых языках, например java, беззнаковые целые типы (за исключением символьного) отсутствуют.[3]

Неправильное использование беззнаковых целых может приводить к неочевидным ошибкам из-за возникающего переполнения[4]. В приведённом ниже примере использование беззнаковых целых в цикле в C и C++ превращает этот цикл в бесконечный:

char ar[N];
for (unsigned int i = N-1; i >= 0; --i){
      ar[i] = i; 
}

Целые со знаком

Существует несколько различных способов представления целых значений в двоичном коде в виде величины со знаком (англ.). В частности можно назвать прямой и обратный коды. Знак кодируется в старшем разряде числа: 0 соответствует положительным, а 1 отрицательным числам.

Могут быть использованы и более экзотические представления отрицательных чисел, такие, как, например, система счисления по основанию −2.[5]

Однако для большинства современных процессоров обычным представлением чисел со знаком является дополнительный код. Максимальное положительное число представляется двоичным кодом 0111…111, максимальное по модулю отрицательное кодом 1000…000, а код 111…111 соответствует −1. Такое представление чисел соответствует наиболее простой реализации арифметических логических устройств процессора на логических вентилях и позволяет использовать один и тот же алгоритм сложения и вычитания как для беззнаковых чисел, так и для чисел со знаком (отличие — только в условиях, при которых считается, что наступило арифметическое переполнение).

m-байтовая переменная целого типа со знаком принимает значения от −28m-1 до +28m-1−1.

Предельные значения для разных битностей

Ниже представлена таблица предельных значений десятичных чисел для разных битностей при кодировании дополнительным кодом. В колонке «Максимальное десятичное» сначала идёт максимальное значение целого без знака, а под ним минимальное и максимальное целое со знаком.

Бит Байт Дв. слов Максимальное десятичное Дес. цифр
4 ½ 15
-8
+7
2
1
1
8 1 ¼ 255
-128
+127
3
3
3
16 2 ½ 65535
-32768
+32767
5
5
5
24 3 ¾ 16777215
-8388608
+8388607
8
7
7
32 4 1 4294967295
-2147483648
+2147483647
10
10
10
48 6 281474976710655
-140737488355328
+140737488355327
15
15
15
64 8 2 18446744073709551615
-9223372036854775808
+9223372036854775807
20
19
19
96 12 3 79228162514264337593543950335
-39614081257132168796771975168
+39614081257132168796771975167
29
29
29
128 16 4 340282366920938463463374607431768211455
-170141183460469231731687303715884105728
+170141183460469231731687303715884105727
39
39
39
256 32 8 115792089237316195(...)584007913129639935
-57896044618658097(...)792003956564819968
+57896044618658097(...)792003956564819967
78
77
77
512 64 16 13407807929942597099(...)946433649006084095
-6703903964971298549(...)973216824503042048
+6703903964971298549(...)973216824503042047
155
154
154
1024 128 32 179769313486231590(...)356329624224137215
-89884656743115795(...)678164812112068608
+89884656743115795(...)678164812112068607
309
308
308
2048 256 64 32317006071311007(...)853611059596230655
-16158503035655503(...)926805529798115328
+16158503035655503(...)926805529798115327
617
617
617
4096 512 128 1044388881413152506(...)708340403154190335
-522194440706576253(...)354170201577095168
+522194440706576253(...)354170201577095167
1234
1233
1233
8192 1024 256 1090748135619415929(...)505665475715792895
-545374067809707964(...)252832737857896448
+545374067809707964(...)252832737857896447
2467
2466
2466
16384 2048 512 1189731495357231765(...)027290669964066815
-594865747678615882(...)513645334982033408
+594865747678615882(...)513645334982033407
4933
4932
4932
32768 4096 1024 1415461031044954789(...)668104633712377855
-707730515522477394(...)334052316856188928
+707730515522477394(...)334052316856188927
9865
9864
9864
65536 8192 2048 2003529930406846464(...)587895905719156735
-1001764965203423232(...)793947952859578368
+1001764965203423232(...)793947952859578367
19729
19729
19729
131072 16384 4096 4014132182036063039(...)812318570934173695
-2007066091018031519(...)906159285467086848
+2007066091018031519(...)906159285467086847
39457
39457
39457
262144 32768 8192 16113257174857604736(...)605349934298300415
-8056628587428802368(...)302674967149150208
+8056628587428802368(...)302674967149150207
78914
78913
78913
524288 65536 16384 259637056783100077(...)364528226185773055
-129818528391550038(...)182264113092886528
+129818528391550038(...)182264113092886527
157827
157827
157827
1048576 131071 32767 67411401254990734(...)119068940335579135
-33705700627495367(...)559534470167789568
+33705700627495367(...)559534470167789567
315653
315653
315653

Операции над целыми

Арифметические операции

К целочисленным значениям применимы в первую очередь арифметические операции. Ниже приведены самые часто используемые (в скобках указаны их обозначения в различных языках программирования и им аналогичным средствах).

  • Сравнение (англ. comparison). Здесь применимы соотношения «равно» («=»; «==»; «eq»), «не равно» («!=»; «<>»; «ne»), «больше» («>»; «gt»), «больше или равно» («>=»; «ge»), «меньше» («<»; «lt») и «меньше или равно» («<=»; «le»).
  • Инкремент (англ. increment; «++») и декремент (англ. decrement; «--») — арифметическое увеличение или уменьшение числа на единицу. Выделено в отдельные операции из-за частого использования с переменными-счётчиками в программировании.
  • Сложение (англ. addition; «+») и вычитание (англ. subtraction; «-»).
  • Умножение (англ. multiplication; «*»).
  • Деление (англ. division; «/»; «\») и получение остатка от деления (англ. modulo; «%»). Некоторые процессоры (например, архитектуры x86) позволяют производить обе эти операции за одну инструкцию.
  • Инверсия знака (англ. negation) и получение абсолютного значения (англ. absolute).
  • Получение знака. Результатом такой операции обычно является 1 для положительных значений, −1 — для отрицательных и 0 — для нуля.
  • Возведение в степень («^»).

В некоторых языках программирования для лаконичности есть операторы, которые позволяют производить арифметическую операцию с присвоением. Например, «+=» складывает текущее значение переменной слева с выражением справа и помещает результат в исходную переменную. Так же в некоторых языках и средах доступна совмещённая операция MulDiv, которая умножает на одно число, а потом делит результат на второе.

Обычно самыми дорогими по скорости операциями являются умножение и деление (получение остатка от деления).

В памяти компьютера для хранения целых чисел обычно отводится ячейки фиксированного объёма. Из-за этого операции увеличения и уменьшения значений могут приводить к переполнению, что оборачивается искажением результата. Некоторые языки программирования позволяют производит вызов исключения в таких случаях. Кроме этого можно определять поведение при переполнении:

  • Циклическая операция (обычно происходит по умолчанию). Например, если сделать инкремент 8-битного беззнакового значения 255, то получится 0.
  • Операция с насыщением. Если будет достигнут предел, то конечным значением будет это предельное. Например, если к 8-битному беззнаковому числу 250 прибавить 10, то получится 255. Сложение, вычитание и умножение с насыщением обычно применяется при работе с цветом.

Побитовые операции

Помимо математических, к целым числам применимы битовые операции, которые основаны на особенностях позиционного двоичного кодирования. Обычно они выполняются значительно быстрее арифметических операций и поэтому их используют как более оптимальные аналоги.

  • Битовый сдвиг влево с дополнением нулями аналогичен умножению числа на степень двойки (количество бит сдвига соответствует степени двойки).
  • Битовый сдвиг вправо аналогичен делению на степень двойки (количество бит сдвига соответствует степени двойки). Некоторые языки программирования и процессоры поддерживают арифметический сдвиг, который позволяет сохранять знак у целых со знаком (сохраняется значение старшего бита).
  • У целых со знаком знак можно узнать по старшему биту (у отрицательных он установлен).
  • Чтение и установка младшего бита позволяет управлять чётностью (у нечётных чисел он установлен).
  • Побитовое «И» над определённым количеством младших бит позволяет узнать остаток от деления на степень двойки (степень соответствует количеству бит).
  • Побитовое «ИЛИ» над определённым количеством младших бит и последующий инкремент округляет число на значение, равное степени двойки (степень соответствует количеству бит) — используется для выравнивания адресов и размеров на определённое значение.

Работа со строками

Довольно частыми операциями являются получение строки из числового значения во внутреннем представлении и обратно — число из строки. При преобразовании в строку обычно доступны средства задания форматирования в зависимости от языка пользователя.

Ниже перечислены некоторые из представлений чисел строкой.

  • Десятичное число (англ. decimal). При получении строки обычно можно задать разделители разрядов, количество знаков (добавляются лидирующие нули если их меньше) и обязательное указание знака числа.
  • Число в системе счисления, которое является степенью двойки. Самые частые: двоичное (binary англ. binary), восьмиричное (англ. octal) и шестнадцатиричное (англ. hexadecimal). При получении строки обычно можно задать разделители групп цифр и минимальное количество цифр (производится дополнение нулями, если их меньше). Так как эти представления чаще всего используются в программировании, то здесь обычно доступны соответствующие опции. Например, указание префикса и постфикса для получения значения в соответствии с синтаксисом языка. Для 16-ричных актуально указание регистра символов, а также обязательное добавление нуля, если первая цифра представлена буквой (чтобы число не определялось как строковый идентификатор).
  • Римское число (англ. roman).
  • Словесное представление (в том числе сумма прописью) — число представляется словами на указанном натуральном языке.

Перечислимый тип

К целым относится также перечислимый тип. Переменные перечислимого типа принимают конечный заранее заданный набор значений. Размер набора не определяется числом байтов, используемых для представления целочисленных значений переменных такого типа.

Например, в языке Python логический тип является подтипом целого и использует имена False и True, которые при приведении к целому получают значения 0 и 1 соответственно[6].

См. также

Напишите отзыв о статье "Целое (тип данных)"

Примечания

  1. Бен-Ари, 2000, с. 54.
  2. [wiki.nsunc.com/asm/lesson7 Урок 7. Расширенные арифметические операции с целыми числами], Низкоуровневое программирование, СУНЦ НГУ
  3. [java.sun.com/docs/books/jls/second_edition/html/typesValues.doc.html#9151 Types, Values and Variables], Java Languaege Specification, 2-nd ed.
  4. [www.compiler.su/nuzhny-li-bezznakovye-tselye.php «Нужны ли беззнаковые целые?»] (22 января 2013)
  5. Hacker's Delight, 2004, с. 215-221.
  6. Beazley, 2009, pp. 38.

Литература

  • [de.ifmo.ru/bk_netra/page.php?tutindex=25&index=102 Основные определения цифровой и микропроцессорной техники], Система дистанционного обучения СПбГУ ИТМО, Программное обеспечение измерительных систем на базе универсальных компьютеров
  • М. Бен-Ари. Глава 4. Элементарные типы данных // Языки программирования. Практический сравнительный анализ = Understanding Programming Language. — Москва: Мир, 2000. — С. 53-74. — 366 с. — ISBN 5-03-003314-9.
  • Теренс Пратт, Марвин Зелковиц. 5.2. Скалярные типы данных // Языки программирования. Разработка и реализация = Programming Language. Design and Implementation. — 4-th edition. — Питер, 2002. — С. 205-216. — 688 с. — ISBN 5-03-003314-9.
  • Генри Уоррен мл. Алгоритмические трюки для программистов = Hacker's Delight. — Вильямс, 2004. — 288 с. — ISBN 5-8459-0572-9.
  • Behrooz Parhami. [www.ece.ucsb.edu/~parhami/text_comp_arit.htm Computer Arithmetic: Algorithms and Hardware Designs]. — New York: Oxford University Press, 2000. — 510 p. — ISBN 0-19-512583-5.
  • David M. Beazley. Python Essential Reference. — 4th Edition. — Addison-Wesley Professional, 2009. — 717 с. — ISBN 978-0672329784.


Отрывок, характеризующий Целое (тип данных)

– Ваше благородие, к генералу. Здесь в избе стоят, – сказал фейерверкер, подходя к Тушину.
– Сейчас, голубчик.
Тушин встал и, застегивая шинель и оправляясь, отошел от костра…
Недалеко от костра артиллеристов, в приготовленной для него избе, сидел князь Багратион за обедом, разговаривая с некоторыми начальниками частей, собравшимися у него. Тут был старичок с полузакрытыми глазами, жадно обгладывавший баранью кость, и двадцатидвухлетний безупречный генерал, раскрасневшийся от рюмки водки и обеда, и штаб офицер с именным перстнем, и Жерков, беспокойно оглядывавший всех, и князь Андрей, бледный, с поджатыми губами и лихорадочно блестящими глазами.
В избе стояло прислоненное в углу взятое французское знамя, и аудитор с наивным лицом щупал ткань знамени и, недоумевая, покачивал головой, может быть оттого, что его и в самом деле интересовал вид знамени, а может быть, и оттого, что ему тяжело было голодному смотреть на обед, за которым ему не достало прибора. В соседней избе находился взятый в плен драгунами французский полковник. Около него толпились, рассматривая его, наши офицеры. Князь Багратион благодарил отдельных начальников и расспрашивал о подробностях дела и о потерях. Полковой командир, представлявшийся под Браунау, докладывал князю, что, как только началось дело, он отступил из леса, собрал дроворубов и, пропустив их мимо себя, с двумя баталионами ударил в штыки и опрокинул французов.
– Как я увидал, ваше сиятельство, что первый батальон расстроен, я стал на дороге и думаю: «пропущу этих и встречу батальным огнем»; так и сделал.
Полковому командиру так хотелось сделать это, так он жалел, что не успел этого сделать, что ему казалось, что всё это точно было. Даже, может быть, и в самом деле было? Разве можно было разобрать в этой путанице, что было и чего не было?
– Причем должен заметить, ваше сиятельство, – продолжал он, вспоминая о разговоре Долохова с Кутузовым и о последнем свидании своем с разжалованным, – что рядовой, разжалованный Долохов, на моих глазах взял в плен французского офицера и особенно отличился.
– Здесь то я видел, ваше сиятельство, атаку павлоградцев, – беспокойно оглядываясь, вмешался Жерков, который вовсе не видал в этот день гусар, а только слышал о них от пехотного офицера. – Смяли два каре, ваше сиятельство.
На слова Жеркова некоторые улыбнулись, как и всегда ожидая от него шутки; но, заметив, что то, что он говорил, клонилось тоже к славе нашего оружия и нынешнего дня, приняли серьезное выражение, хотя многие очень хорошо знали, что то, что говорил Жерков, была ложь, ни на чем не основанная. Князь Багратион обратился к старичку полковнику.
– Благодарю всех, господа, все части действовали геройски: пехота, кавалерия и артиллерия. Каким образом в центре оставлены два орудия? – спросил он, ища кого то глазами. (Князь Багратион не спрашивал про орудия левого фланга; он знал уже, что там в самом начале дела были брошены все пушки.) – Я вас, кажется, просил, – обратился он к дежурному штаб офицеру.
– Одно было подбито, – отвечал дежурный штаб офицер, – а другое, я не могу понять; я сам там всё время был и распоряжался и только что отъехал… Жарко было, правда, – прибавил он скромно.
Кто то сказал, что капитан Тушин стоит здесь у самой деревни, и что за ним уже послано.
– Да вот вы были, – сказал князь Багратион, обращаясь к князю Андрею.
– Как же, мы вместе немного не съехались, – сказал дежурный штаб офицер, приятно улыбаясь Болконскому.
– Я не имел удовольствия вас видеть, – холодно и отрывисто сказал князь Андрей.
Все молчали. На пороге показался Тушин, робко пробиравшийся из за спин генералов. Обходя генералов в тесной избе, сконфуженный, как и всегда, при виде начальства, Тушин не рассмотрел древка знамени и спотыкнулся на него. Несколько голосов засмеялось.
– Каким образом орудие оставлено? – спросил Багратион, нахмурившись не столько на капитана, сколько на смеявшихся, в числе которых громче всех слышался голос Жеркова.
Тушину теперь только, при виде грозного начальства, во всем ужасе представилась его вина и позор в том, что он, оставшись жив, потерял два орудия. Он так был взволнован, что до сей минуты не успел подумать об этом. Смех офицеров еще больше сбил его с толку. Он стоял перед Багратионом с дрожащею нижнею челюстью и едва проговорил:
– Не знаю… ваше сиятельство… людей не было, ваше сиятельство.
– Вы бы могли из прикрытия взять!
Что прикрытия не было, этого не сказал Тушин, хотя это была сущая правда. Он боялся подвести этим другого начальника и молча, остановившимися глазами, смотрел прямо в лицо Багратиону, как смотрит сбившийся ученик в глаза экзаменатору.
Молчание было довольно продолжительно. Князь Багратион, видимо, не желая быть строгим, не находился, что сказать; остальные не смели вмешаться в разговор. Князь Андрей исподлобья смотрел на Тушина, и пальцы его рук нервически двигались.
– Ваше сиятельство, – прервал князь Андрей молчание своим резким голосом, – вы меня изволили послать к батарее капитана Тушина. Я был там и нашел две трети людей и лошадей перебитыми, два орудия исковерканными, и прикрытия никакого.
Князь Багратион и Тушин одинаково упорно смотрели теперь на сдержанно и взволнованно говорившего Болконского.
– И ежели, ваше сиятельство, позволите мне высказать свое мнение, – продолжал он, – то успехом дня мы обязаны более всего действию этой батареи и геройской стойкости капитана Тушина с его ротой, – сказал князь Андрей и, не ожидая ответа, тотчас же встал и отошел от стола.
Князь Багратион посмотрел на Тушина и, видимо не желая выказать недоверия к резкому суждению Болконского и, вместе с тем, чувствуя себя не в состоянии вполне верить ему, наклонил голову и сказал Тушину, что он может итти. Князь Андрей вышел за ним.
– Вот спасибо: выручил, голубчик, – сказал ему Тушин.
Князь Андрей оглянул Тушина и, ничего не сказав, отошел от него. Князю Андрею было грустно и тяжело. Всё это было так странно, так непохоже на то, чего он надеялся.

«Кто они? Зачем они? Что им нужно? И когда всё это кончится?» думал Ростов, глядя на переменявшиеся перед ним тени. Боль в руке становилась всё мучительнее. Сон клонил непреодолимо, в глазах прыгали красные круги, и впечатление этих голосов и этих лиц и чувство одиночества сливались с чувством боли. Это они, эти солдаты, раненые и нераненые, – это они то и давили, и тяготили, и выворачивали жилы, и жгли мясо в его разломанной руке и плече. Чтобы избавиться от них, он закрыл глаза.
Он забылся на одну минуту, но в этот короткий промежуток забвения он видел во сне бесчисленное количество предметов: он видел свою мать и ее большую белую руку, видел худенькие плечи Сони, глаза и смех Наташи, и Денисова с его голосом и усами, и Телянина, и всю свою историю с Теляниным и Богданычем. Вся эта история была одно и то же, что этот солдат с резким голосом, и эта то вся история и этот то солдат так мучительно, неотступно держали, давили и все в одну сторону тянули его руку. Он пытался устраняться от них, но они не отпускали ни на волос, ни на секунду его плечо. Оно бы не болело, оно было бы здорово, ежели б они не тянули его; но нельзя было избавиться от них.
Он открыл глаза и поглядел вверх. Черный полог ночи на аршин висел над светом углей. В этом свете летали порошинки падавшего снега. Тушин не возвращался, лекарь не приходил. Он был один, только какой то солдатик сидел теперь голый по другую сторону огня и грел свое худое желтое тело.
«Никому не нужен я! – думал Ростов. – Некому ни помочь, ни пожалеть. А был же и я когда то дома, сильный, веселый, любимый». – Он вздохнул и со вздохом невольно застонал.
– Ай болит что? – спросил солдатик, встряхивая свою рубаху над огнем, и, не дожидаясь ответа, крякнув, прибавил: – Мало ли за день народу попортили – страсть!
Ростов не слушал солдата. Он смотрел на порхавшие над огнем снежинки и вспоминал русскую зиму с теплым, светлым домом, пушистою шубой, быстрыми санями, здоровым телом и со всею любовью и заботою семьи. «И зачем я пошел сюда!» думал он.
На другой день французы не возобновляли нападения, и остаток Багратионова отряда присоединился к армии Кутузова.



Князь Василий не обдумывал своих планов. Он еще менее думал сделать людям зло для того, чтобы приобрести выгоду. Он был только светский человек, успевший в свете и сделавший привычку из этого успеха. У него постоянно, смотря по обстоятельствам, по сближениям с людьми, составлялись различные планы и соображения, в которых он сам не отдавал себе хорошенько отчета, но которые составляли весь интерес его жизни. Не один и не два таких плана и соображения бывало у него в ходу, а десятки, из которых одни только начинали представляться ему, другие достигались, третьи уничтожались. Он не говорил себе, например: «Этот человек теперь в силе, я должен приобрести его доверие и дружбу и через него устроить себе выдачу единовременного пособия», или он не говорил себе: «Вот Пьер богат, я должен заманить его жениться на дочери и занять нужные мне 40 тысяч»; но человек в силе встречался ему, и в ту же минуту инстинкт подсказывал ему, что этот человек может быть полезен, и князь Василий сближался с ним и при первой возможности, без приготовления, по инстинкту, льстил, делался фамильярен, говорил о том, о чем нужно было.
Пьер был у него под рукою в Москве, и князь Василий устроил для него назначение в камер юнкеры, что тогда равнялось чину статского советника, и настоял на том, чтобы молодой человек с ним вместе ехал в Петербург и остановился в его доме. Как будто рассеянно и вместе с тем с несомненной уверенностью, что так должно быть, князь Василий делал всё, что было нужно для того, чтобы женить Пьера на своей дочери. Ежели бы князь Василий обдумывал вперед свои планы, он не мог бы иметь такой естественности в обращении и такой простоты и фамильярности в сношении со всеми людьми, выше и ниже себя поставленными. Что то влекло его постоянно к людям сильнее или богаче его, и он одарен был редким искусством ловить именно ту минуту, когда надо и можно было пользоваться людьми.
Пьер, сделавшись неожиданно богачом и графом Безухим, после недавнего одиночества и беззаботности, почувствовал себя до такой степени окруженным, занятым, что ему только в постели удавалось остаться одному с самим собою. Ему нужно было подписывать бумаги, ведаться с присутственными местами, о значении которых он не имел ясного понятия, спрашивать о чем то главного управляющего, ехать в подмосковное имение и принимать множество лиц, которые прежде не хотели и знать о его существовании, а теперь были бы обижены и огорчены, ежели бы он не захотел их видеть. Все эти разнообразные лица – деловые, родственники, знакомые – все были одинаково хорошо, ласково расположены к молодому наследнику; все они, очевидно и несомненно, были убеждены в высоких достоинствах Пьера. Беспрестанно он слышал слова: «С вашей необыкновенной добротой» или «при вашем прекрасном сердце», или «вы сами так чисты, граф…» или «ежели бы он был так умен, как вы» и т. п., так что он искренно начинал верить своей необыкновенной доброте и своему необыкновенному уму, тем более, что и всегда, в глубине души, ему казалось, что он действительно очень добр и очень умен. Даже люди, прежде бывшие злыми и очевидно враждебными, делались с ним нежными и любящими. Столь сердитая старшая из княжен, с длинной талией, с приглаженными, как у куклы, волосами, после похорон пришла в комнату Пьера. Опуская глаза и беспрестанно вспыхивая, она сказала ему, что очень жалеет о бывших между ними недоразумениях и что теперь не чувствует себя вправе ничего просить, разве только позволения, после постигшего ее удара, остаться на несколько недель в доме, который она так любила и где столько принесла жертв. Она не могла удержаться и заплакала при этих словах. Растроганный тем, что эта статуеобразная княжна могла так измениться, Пьер взял ее за руку и просил извинения, сам не зная, за что. С этого дня княжна начала вязать полосатый шарф для Пьера и совершенно изменилась к нему.
– Сделай это для нее, mon cher; всё таки она много пострадала от покойника, – сказал ему князь Василий, давая подписать какую то бумагу в пользу княжны.
Князь Василий решил, что эту кость, вексель в 30 т., надо было всё таки бросить бедной княжне с тем, чтобы ей не могло притти в голову толковать об участии князя Василия в деле мозаикового портфеля. Пьер подписал вексель, и с тех пор княжна стала еще добрее. Младшие сестры стали также ласковы к нему, в особенности самая младшая, хорошенькая, с родинкой, часто смущала Пьера своими улыбками и смущением при виде его.
Пьеру так естественно казалось, что все его любят, так казалось бы неестественно, ежели бы кто нибудь не полюбил его, что он не мог не верить в искренность людей, окружавших его. Притом ему не было времени спрашивать себя об искренности или неискренности этих людей. Ему постоянно было некогда, он постоянно чувствовал себя в состоянии кроткого и веселого опьянения. Он чувствовал себя центром какого то важного общего движения; чувствовал, что от него что то постоянно ожидается; что, не сделай он того, он огорчит многих и лишит их ожидаемого, а сделай то то и то то, всё будет хорошо, – и он делал то, что требовали от него, но это что то хорошее всё оставалось впереди.
Более всех других в это первое время как делами Пьера, так и им самим овладел князь Василий. Со смерти графа Безухого он не выпускал из рук Пьера. Князь Василий имел вид человека, отягченного делами, усталого, измученного, но из сострадания не могущего, наконец, бросить на произвол судьбы и плутов этого беспомощного юношу, сына его друга, apres tout, [в конце концов,] и с таким огромным состоянием. В те несколько дней, которые он пробыл в Москве после смерти графа Безухого, он призывал к себе Пьера или сам приходил к нему и предписывал ему то, что нужно было делать, таким тоном усталости и уверенности, как будто он всякий раз приговаривал:
«Vous savez, que je suis accable d'affaires et que ce n'est que par pure charite, que je m'occupe de vous, et puis vous savez bien, que ce que je vous propose est la seule chose faisable». [Ты знаешь, я завален делами; но было бы безжалостно покинуть тебя так; разумеется, что я тебе говорю, есть единственно возможное.]
– Ну, мой друг, завтра мы едем, наконец, – сказал он ему однажды, закрывая глаза, перебирая пальцами его локоть и таким тоном, как будто то, что он говорил, было давным давно решено между ними и не могло быть решено иначе.
– Завтра мы едем, я тебе даю место в своей коляске. Я очень рад. Здесь у нас всё важное покончено. А мне уж давно бы надо. Вот я получил от канцлера. Я его просил о тебе, и ты зачислен в дипломатический корпус и сделан камер юнкером. Теперь дипломатическая дорога тебе открыта.
Несмотря на всю силу тона усталости и уверенности, с которой произнесены были эти слова, Пьер, так долго думавший о своей карьере, хотел было возражать. Но князь Василий перебил его тем воркующим, басистым тоном, который исключал возможность перебить его речь и который употреблялся им в случае необходимости крайнего убеждения.
– Mais, mon cher, [Но, мой милый,] я это сделал для себя, для своей совести, и меня благодарить нечего. Никогда никто не жаловался, что его слишком любили; а потом, ты свободен, хоть завтра брось. Вот ты всё сам в Петербурге увидишь. И тебе давно пора удалиться от этих ужасных воспоминаний. – Князь Василий вздохнул. – Так так, моя душа. А мой камердинер пускай в твоей коляске едет. Ах да, я было и забыл, – прибавил еще князь Василий, – ты знаешь, mon cher, что у нас были счеты с покойным, так с рязанского я получил и оставлю: тебе не нужно. Мы с тобою сочтемся.
То, что князь Василий называл с «рязанского», было несколько тысяч оброка, которые князь Василий оставил у себя.
В Петербурге, так же как и в Москве, атмосфера нежных, любящих людей окружила Пьера. Он не мог отказаться от места или, скорее, звания (потому что он ничего не делал), которое доставил ему князь Василий, а знакомств, зовов и общественных занятий было столько, что Пьер еще больше, чем в Москве, испытывал чувство отуманенности, торопливости и всё наступающего, но не совершающегося какого то блага.
Из прежнего его холостого общества многих не было в Петербурге. Гвардия ушла в поход. Долохов был разжалован, Анатоль находился в армии, в провинции, князь Андрей был за границей, и потому Пьеру не удавалось ни проводить ночей, как он прежде любил проводить их, ни отводить изредка душу в дружеской беседе с старшим уважаемым другом. Всё время его проходило на обедах, балах и преимущественно у князя Василия – в обществе толстой княгини, его жены, и красавицы Элен.