Почему переменная UInt64 не может содержать значение больше, чем UInt32 :: Max? - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть две переменные a и b , и они объявляются и присваиваются следующим образом:

UInt64 a = (UInt64)4294967295 * 3;
UInt64 b = 4294967295 * 3;

Когда я их печатаю a содержит 12884901885 и b содержит 4294967295.

Почему я должен приводить число с помощью UInt64 для хранения такого большого значения?

Спасибо

1 Ответ

1 голос
/ 27 сентября 2019

вам нужно добавить 'ULL' (он же Unsigned Long Long) к константе, чтобы указать, что она должна рассматриваться как 64-битное значение.

UInt64 b = 4294967295ULL * 3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...