Показаны сообщения с ярлыком int. Показать все сообщения
Показаны сообщения с ярлыком int. Показать все сообщения

23 ноября 2011

Что выбрать? Number, int, uint


В actionscript представлены три основных типа числовых значений. Самое интересное, что многие флешеры не совсем понимают разницу между ними:



Number - число с плавающей точкой, с размером в 64 бита, на целую часть может приходиться до 53 бит;
int - 32-разрядное целое число со знаком (значения -2147483648 (-2 в степени 31) до 2147483647 (2 в степени 31 -1));
uint - 32-разрядное число без знака (значения 0 до 4294967295 (2 в степени 32 - 1));

При инициализации int и uint значение переменной равно 0. То есть можно писать так:

int x;

вместо:

int x = 0;

а вот Number при инициализации дает только null.

Для счетчиков или каких то целых действий лучше использовать uint или int, это будет сокращать расход памяти в два раза.

Так же если переменная будет иметь тип int все ее значения будут целочисленными, даже после такого:

int/*uint*/ x = 1/2;

Но будьте осторожны с использованием uint в счетчиках, он не может быть меньше 0:

uint x;
while( x >= 0)
{
x--;
} //этот цикл никогда не завершится;


Также почему то принять для хранения цветов с альфа каналом (0xFFFFFFFF) использоваться Number, потому что не хватает значений у int, но зато у uint вполне хватает диапазона, для таких чисел.