Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Alexu007 от Август 09, 2014, 08:42



Название: оператор .toLongLong()
Отправлено: Alexu007 от Август 09, 2014, 08:42
позволяет ввести в 64-разрядное число максимум 9223372036854775807 (0x7FFF FFFF FFFF FFFF). А ввести число без знака полностью возможно?


Название: Re: оператор .toLongLong()
Отправлено: Old от Август 09, 2014, 09:04
.toULongLong


Название: Re: оператор .toLongLong()
Отправлено: Alexu007 от Август 09, 2014, 09:51
работает, только предупреждения выдаёт на строчку:

Код
C++ (Qt)
const quint64 maxlen = 18446744073709551557;

предупреждение: integer constant is so large that it is unsigned
предупреждение: this decimal constant is unsigned only in ISO C90
предупреждение: integer constant is too large for 'long' type


Название: Re: оператор .toLongLong()
Отправлено: Old от Август 09, 2014, 10:00
Код
C++ (Qt)
const quint64 maxlen = 18446744073709551557uL;


Название: Re: оператор .toLongLong()
Отправлено: Alexu007 от Август 11, 2014, 13:50
Два нижних предупреждения снялись. Верхнее осталось. А к чему вся эта движуха? Число заведомо помещается в 64 бита. В объявлении переменной стоит quint64 - понятно, что без знака. В чём проблема?


Название: Re: оператор .toLongLong()
Отправлено: __Heaven__ от Август 11, 2014, 16:15
typedef quint64
Typedef for unsigned long long int (unsigned __int64 on Windows). This type is guaranteed to be 64-bit on all platforms supported by Qt.

Literals of this type can be created using the Q_UINT64_C() macro:

Цитировать
quint64 value = Q_UINT64_C(932838457459459);