Подтвердить что ты не робот

Как настроить UInt32 на максимальное значение

  • Каково максимальное значение для UInt32?

  • Есть ли способ использовать оператор sizeof для получения максимального значения (так как он неподписан)? Поэтому в моем коде не заканчиваются #defines или магические числа.

4b9b3361

Ответ 2

Максимальное значение для UInt32 равно 0xFFFFFFFF (или 4294967295 в десятичной форме).

sizeof(UInt32) не вернет максимальное значение; он вернет 4, размер в байтах 32-разрядного целых без знака.

Ответ 3

Просто установите max, используя стандартную шестнадцатеричную нотацию, а затем проверьте ее на все, что вам нужно. 32-бит - это 8 шестнадцатеричных байтов, поэтому он будет выглядеть следующим образом:

let myMax: UInt32 = 0xFFFFFFFF

if myOtherNumber > myMax {
    // resolve problem
}

Ответ 4

4.294.967.295 - максимальное значение или шестнадцатеричное значение 0xFFFFFFFF

Ответ 5

Портативный способ:

std::numeric_limits<uint32_t>::max()

Ответ 6

Альтернатива для любого без знака в C или С++:

anUnsigned = -1;

Это полезно, поскольку он работает для всех, поэтому, если вы переходите с unsigned int на unsigned long, вам не нужно проходить через свой код. Вы также увидите, что это используется во множестве бит-скриптов:

anUnsigned |= -(aBoolOrConditionThatWhenTrueCausesAnUnsignedToBeSetToAll1s)
anUnsigned |= -(!aValueThatWhenZeroCausesAnUnsignedToBeSetToAll1s)
anUnsigned |= -(!!aValueThatWhenNonZeroCausesAnUnsignedToBeSetToAll1s)

Недостатком является то, что он выглядит странно, присваивая отрицательное число неподписанному!