Я знаю про int
та long
(32-бітні та 64-бітні числа), але що таке uint
і ulong
?
Я знаю про int
та long
(32-бітні та 64-бітні числа), але що таке uint
і ulong
?
Відповіді:
Примітивні типи даних з префіксом "u" - це непідписані версії з однаковими розмірами бітів. Ефективно це означає, що вони не можуть зберігати від’ємні числа, але, з іншого боку, вони можуть зберігати додатні числа вдвічі більше, ніж їх підписані аналоги. Підписані аналоги не мають префікса "u".
Обмеження для int (32 біт):
int: –2147483648 to 2147483647
uint: 0 to 4294967295
І надовго (64 біт):
long: -9223372036854775808 to 9223372036854775807
ulong: 0 to 18446744073709551615
uint
і ulong
є безпідписаними версіями int
та long
. Це означає, що вони не можуть бути негативними. Натомість вони мають більшу максимальну величину.
Тип Min Max CLS-сумісний int -2,147,483,648 2,147,483,647 Так uint 0 4,294,967,295 Ні довгі –9,223,372,036,854,775,808 9,223,372,036,854,775,807 Так ulong 0 18,446,744,073,709,551,615 Ні
Для написання буквального неподписаного int у вихідному коді ви можете використовувати суфікс u
або, U
наприклад 123U
.
Ви не повинні використовувати uint та ulong у своєму загальнодоступному інтерфейсі, якщо ви хочете бути сумісними з CLS .
Прочитайте документацію для отримання додаткової інформації:
u
значить unsigned
, так ulong
це велика кількість без знака. Ви можете зберігати більше значення, ulong
ніж long
, але негативні числа заборонені.
long
Значення зберігається в 64-бітному, з першою цифрою , щоб показати , якщо це позитивне / негативне число. а ulong
також 64-розрядна, при цьому всі 64-бітні для зберігання номера. тому максимум улонг - 2 (64) -1, а довгий - 2 (63) -1.
Різниця полягає в тому, що типи даних uint
і ulong
непідписані, тобто діапазон різний: вони не приймають негативні значення:
int range: -2,147,483,648 to 2,147,483,647
uint range: 0 to 4,294,967,295
long range: –9,223,372,036,854,775,808 to 9,223,372,036,854,775,807
ulong range: 0 to 18,446,744,073,709,551,615