Название: qint16 и -1 Отправлено: Dimas от Апрель 11, 2022, 15:11 Есть простейший код:
Код: #include <QCoreApplication> Имеем вывод: Код: sizeof 2 Если в памяти qint16 занимает два байта, то при переполнении, например число 32768 будет отображено как -32768. Почему QString его выводит как "FFFFFFFFFFFF8000"? Почему не -1 в HEX не FFFF ? Как правильно в QString вывести шестнадцатиричное значение -1? Название: Re: qint16 и -1 Отправлено: qtkoder777 от Апрель 11, 2022, 16:28 16 бит это 4 hex символа. Всё, что после них - мусор, на вывод у Вас идёт 64-разрядное число.
Название: Re: qint16 и -1 Отправлено: Dimas от Апрель 11, 2022, 19:13 Странно это. Если размер известен, почему QString тянет мусор. Отрезать вручную мусор решение не самое красивое, скорее похоже на костыль
Название: Re: qint16 и -1 Отправлено: Dimas от Апрель 12, 2022, 07:06 Похоже в Qt просто нет функции для вывода в HEX этого типа (quint16, qint16, quint8, qint8), т.к. в qstring.h:
Код: static QString number(int, int base=10); |