У меня возникли трудности с пониманием разницы в размерах типов данных.Основные данные Тип атрибута Различия
У меня есть атрибут displayOrder
с типом Integer 16
. Я использую этот атрибут для поддержания порядка отображения таблицыViewCells, добавленного пользователем в tableView. Я устанавливаю значение с равными числами «1, 2, 3», и он работает нормально.
Но есть также много других вариантов, как Integer 32
, Integer 64
, Decimal
, Float
и Double
. Я сделал свое собственное исследование и обнаружил, что Float может иметь десятичную точку, а Double вдвое больше размера Float (не уверен, что разница между Decimal и Float).
Мой вопрос в том, что различия между ними - это просто размер, значит ли это, что я должен беспокоиться о том, что displayOrder идет, например, «1000», и он будет превышать бит Integer 16
(Сколько-нибудь превысит размер?), и поэтому я должен использовать вместо этого Integer 32
? И если я установил его на Integer 64
, и если displayOrder всего лишь «1», мне нужно беспокоиться о медленной производительности?
Я видел документы NSAttributeType, но не уверен, что означают числа.
Благодаря
Что произойдет, если подписанный int будет отрицательным или 0 или если unsigned int превышает число? Атрибут становится нулевым? – SFF
Они обертываются. Беззнаковый int положителен и он будет идти либо к 0, либо к самому большому числу в зависимости от того, какое значение он имеет и каким образом он перемещается, добавляя или вычитая. Подписанные ints будут идти от максимального положительного до максимального отрицательного или наоборот, в зависимости от его значения, и если вы добавляете или вычитаем.Если вы посмотрите на него, как на петлю, это легко понять. Максимальные и минимальные значения связаны друг с другом. Добавьте 1 к максимуму, и вы получите мин. Вы можете пойти в любом случае в этом цикле. –
Я, вероятно, должен более подробно о подписанных ints и unsigned ints. Извините, я до сих пор не совсем понимаю это. Если бы я понял, что правильно, если я использую Int16, он будет использовать меньше памяти.Но если числа обернутся вокруг, значит ли это, что это не вызовет каких-либо проблем, когда данные хранятся больше, чем Int16 ?? Тогда в чем смысл использования более крупных типов Int32 и Int64? Спасибо за вашу помощь. – SFF