В чем разница между «int» и «uint» / «long» и «ulong»?
Примитивные типы данных с префиксом «u» представляют собой неподписанные версии с одинаковыми размерами бит. Эффективно это означает, что они не могут хранить отрицательные числа, но, с другой стороны, они могут хранить положительные числа в два раза больше, чем их подписанные копии. У подписанных аналогов нет префикса «u». Пределы для int (32 бит):
int: –2147483648 to 2147483647 uint: 0 to 4294967295
И для длинных (64 бит):
long: -9223372036854775808 to 9223372036854775807 ulong: 0 to 18446744073709551615
Isak Savo 16 сен. 2010, в 07:10
Поделиться
Это довольно весело, чтобы работать вручную. 32-битная знаковая переменная использует 1 бит для знака (положительный или отрицательный), поэтому может хранить значения от -2 ^ 31 до + 2 ^ 31 — 1
Jaco Pretorius 16 сен. 2010, в 08:29
при сравнении int и uint для использования какой из них выполним?
Arun Prasad 26 май 2016, в 05:27
Что такое эквивалент C ++?
darkgaze 18 янв. 2018, в 17:40
@JacoPretorius Это неправильно. 8-битный int имеет диапазон от –128 до 127. 9-й бит представляет 256. Таким образом, с 8 битами вы можете представить все значения до 255 (9-й вал — 1). Диапазон от -128 до 127 имеет длину ровно 255. Поэтому ни один бит не содержит знак. Все значения до 127 являются положительными. Значения выше отображаются отрицательными. 255 будет -1. 254 будет -2 и так в одну сторону до 128.
C4d 19 дек. 2018, в 11:03
Я думаю также стоит отметить, что специально для int vs uint целое без знака не является CLS-совместимым, и рекомендуется использовать int как можно чаще.
db2 12 апр. 2019, в 15:31
Показать ещё 3 комментария
uint и ulong — это неподписанные версии int и long . Это означает, что они не могут быть отрицательными. Вместо этого они имеют большее максимальное значение.
Type Min Max CLS-compliant int -2,147,483,648 2,147,483,647 Yes uint 0 4,294,967,295 No long –9,223,372,036,854,775,808 9,223,372,036,854,775,807 Yes ulong 0 18,446,744,073,709,551,615 No
Чтобы написать литерал без знака int в исходном коде, вы можете использовать суффикс u или u , например 123U .
Вы не должны использовать uint и ulong в своем общедоступном интерфейсе, если хотите CLS-совместимый.
Прочтите документацию для получения дополнительной информации:
Кстати, есть и short и ushort и и sbyte.
Mark Byers 16 сен. 2010, в 07:23
Поделиться
Это интересно — что вы имеете в виду под CLS? Ссылка идет в документацию MSDN для int. Если под «CLS» вы подразумеваете спецификацию языка C #, тогда я не понимаю — спецификация четко описывает как uint, так и ulong (раздел 1.3).
Isak Savo 16 сен. 2010, в 10:58
@Isak Savo: Исправлена ссылка, спасибо за указание на ошибку.
Mark Byers 16 сен. 2010, в 11:04
@Isak Savo: Важно быть CLS-совместимым, если вы пишете интерфейс, который может использоваться другими языками .NET, кроме C #.
Mark Byers 16 сен. 2010, в 11:24
Любопытно, что вы упоминаете короткий и ushort, но опустите байт и sbyte 🙂
Roman Starkov 19 сен. 2010, в 12:00
Показать ещё 2 комментария
u означает unsigned , поэтому ulong — большое число без знака. Вы можете сохранить большее значение в ulong , чем long , но отрицательных чисел не разрешено.
Значение A long хранится в 64-битной форме, с его первой цифрой, чтобы показать, является ли это положительным/отрицательным числом. в то время как ulong также является 64-битным, а все 64 бит — для хранения номера. поэтому максимум ulong равен 2 (64) -1, а long равен 2 (63) -1.
Danny Chen 16 сен. 2010, в 08:33
Поделиться
Отличие состоит в том, что 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
srodriguez 16 сен. 2010, в 07:34
Поделиться
Ещё вопросы
- 1 Принесите вперед некоторые маркеры круга в особенность листовки
- 0 Предотвращение дублирования инициализации асинхронных служб в Angular.js
- 1 Как получить ButtonDrawable из флажка в API 21?
- 0 Не удалось найти код для ответа на этот запрос.
- 0 CSS не меняется при вызове JS в HTML
- 1 какие методы используют определенные разрешения в файле androidManifest?
- 0 Ошибка C ++ LNK2019
- 1 масштабирование ткани js canvas со всеми ее объектами
- 1 Кнопка «Создать новый проект» отображает экран создания не-Android проектов
- 0 SQL-запрос не тянет все записи
- 0 Как очистить список, если ответ ложный
- 1 javascript document.getElementsbyClassName не является функцией
- 1 ASP.NET MVC 4 передача значений между списками
- 0 Как определить пользовательскую метрику в Apache Superset?
- 0 Конструктор копирования C ++ принимает неправильные значения
- 0 Экспорт Excel из таблицы MySQL
- 1 Запрет NServiceBus регистрировать мою строку подключения хранилища Azure
- 0 Сортировка результатов SQL для удобства чтения?
- 1 Java Rect.intersects () иногда не работает
- 1 В облачных функциях Firebase отказано в доступе
- 1 Выкладывание JTextField как JLabel, который можно обернуть — нежелательное поведение
- 0 Почему моя кнопка не меняет местоположение моего браузера, когда он находится внутри формы?
- 0 Когда использовать & в C ++ при объявлении переменных?
- 0 JQuery заменяет часть текста в
на
- 0 CSS Divs перекрывают друг друга
- 1 Рельсы — относительные пути — методы
- 0 Xampp — завершение работы MySql — не работает
- 0 когда-нибудь MySQL отключен, из-за увеличения нагрузки посетителя
- 0 C ++ Help. Массивы не работают с целыми числами
- 0 Как использовать COUNT в этом SQL-запросе?
- 0 Qt Creator / C ++ имеет смысл в этом случае использовать valgrind
- 1 Создать новый массив из существующего только с элементами, которые содержат определенное значение
- 1 BluetoothDevice.aliasName неразрешенная ссылка
- 0 тип документа не допускает здесь элемент «BR»; при условии отсутствия стартового тега «LI»
- 1 Windows Phone — любой шаблон дизайна формы?
- 0 Невозможно получить доступ к изолированной области директивы в тесте Жасмин
- 1 Как использовать Содержит с Guid?
- 1 Подключение USB-устройств к эмулятору Android
- 0 Как предотвратить спам в форме [дубликата]
- 0 Переключение между реализациями функций с помощью указателей функций
- 0 Как динамически настроить или изменить размер фонового изображения div в зависимости от размера контента
- 1 В чем разница между возвратом Обещания с .then () и без .then ()?
- 1 Изображение не загружается на JTable
- 0 Magento, неверные цены в корзине
- 1 Запрограммируйте архитектуру нейронной сети с несколькими входами с помощью Keras
- 1 Код бегуна Фибоначчи: JAVA
- 0 Невозможно выделить память для двумерного массива указателей c ++
- 0 Вставка CSS-идентификатора в jQuery
- 1 ffmpeg не работает с именем файла, есть пробел
- 0 параметр для пользовательских ссылок в jqgrid
В чем разница между Int32 и UInt32?
В чем разница между Int32 и UInt32? Вопрос о том, для чего был создан UInt32? Когда я должен использовать UInt32 вместо Int32?
Отслеживать
задан 12 июн 2019 в 8:17
2,909 7 7 золотых знаков 44 44 серебряных знака 83 83 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
UInt32 не допускает отрицательных чисел. Вот пояснения MSDN:
Этот тип значений UInt32 представляет из себя целое 32-разрядное число без знака со значениями от 0 до 4 294 967 295 (2^32).
Integer 32 представляет из себя число в диапазоне -2 147 483 648 to 2 147 483 647, а Unsigned Integer 32 от 0 до 4 294 967 295.
Для большего понимания надо понимать что UInt32 это 32-разрядное целое число без знака, которое можно представить 2 ^ 32 числа (0-4 294 967 295). Однако для предоставления отрицательных чисел требуется «изъять» один бит из 32-х битов, для указания либо положительного либо отрицательного числа. Это оставляет вам 2 ^ 31 возможных чисел как в положительном диапазоне так и в отрицательном диапазоне. Диапазон 2 ^ 31 составляет от -2 147 483 648 до 2 147 483 647 (положительный диапазон также включает число 0, следовательно только 2 147 483 647 ) такой тип значений называется Int32.
На практике UInt32 число используется, там где значения не могут быть отрицательными, поскольку он предполагает больший диапазон. Также стит не забывать что преобразование (прямое) из UInt32 в Int32 невозможно, так как Int32 не может содержать диапазон UInt32, и на оборот.
Arduino.ru
Тип данных unsigned int — беззнаковое целое число, также как и тип int (знаковое) занимает в памяти 2 байта. Но в отличие от int, тип unsigned int может хранить только положительные целые числа в диапазоне от 0 до 65535 (2^16)-1).
Отличие кроется в том как unsigned int использует старший бит, иногда называемый знаковый бит. Если старший бит равен 1, то для типа int компилятор Arduino считает, что это число отрицательное, а остальные 15 bit несут информацию о модуле целого числа в дополнительного кода представления числа, в то время как unsigned int использует все 16 бит для хранения модуля числа.
Пример
unsigned int ledPin = 13;
Синтаксис
unsigned int var = val;
- var — имя переменной
- val — присваиваемое значение
Замечание по использованию типа unsigned int
Когда переменная типа int в следствие арифметической операции достигает своего максимального значения, она «перескакивает» на самое минимальное значение и наоборот:
unsigned int x x = 0; x = x - 1; // x теперь равна 65535 x = x + 1; // x теперь 0
В чем разница между int и uint
Тип данных unsigned int — беззнаковое целое число, также как и тип int (знаковое) занимает в памяти 2 байта. Но в отличие от int, тип unsigned int может хранить только положительные целые числа в диапазоне от 0 до 65535 (2^16)-1).
- Тип данных unsigned int — беззнаковое целое число
- Занимает в памяти 2 байта, как и тип int
- Unsigned int может хранить только положительные целые числа в диапазоне от 0 до 65535 (2^16)-1)
- Int возвращает целую часть числа
- Uint в C# является псевдонимом для базовых типов, MinValue и MaxValue предоставляют минимальное и максимальное значение типа
- Если значение аргумента для Int является отрицательным числом, возвращается первое отрицательное целое число, не превышающее его, а для Fix — первое отрицательное целое число, которое больше этого значения или равно ему
- Переменная типа int (short, long) хранит только целые значения, а переменная типа float (double) хранит десятичные значения
- Int округляет число до ближайшего меньшего целого, TRUNC и INT различаются только при отрицательных числах
- Unsigned int может хранить только положительные целые числа, использует старший бит
- Отличие между int и uint заключается в том, что uint — беззнаковый целочисленный тип, хранящий значения в диапазоне от 0 до 65535, в то время как int может хранить значения, как положительные, так и отрицательные числа.
- Что значит int ()
- Что такое Uint C#
- Что делает int *
- В чем разница между int и double
- Для чего нужна функция int ()
- Что больше float или int
- В чем разница между переменными типов int и unsigned int
- Чем int отличается от uint
Что значит int ()
Возвращает целую часть числа. Значение для проверки (обычно в ячейке).
Что такое Uint C#
Начиная с C# 11 nint типы и nuint являются псевдонимами для базовых типов. По умолчанию все целочисленные типы имеют значение 0. Каждый из целочисленных типов имеет MinValue свойства и MaxValue, которые предоставляют минимальное и максимальное значение этого типа.
Что делает int *
Если значением аргумента является отрицательное число, функция Int возвращает первое отрицательное целое число, не превышающее его, а функция Fix — первое отрицательное целое число, которое больше этого значения или равно ему.
В чем разница между int и double
Переменная типа int (short, long) позволяет хранить только целые значения, тогда как переменная типа float (double) хранит в себе десятичные значения.
Для чего нужна функция int ()
INT округляет число до ближайшего меньшего целого, исходя из значения дробной части числа. Функции INT и TRUNC различаются только при использовании для отрицательных чисел: TRUNC(-4.3) возвращает значение –4, но INT(-4.3) возвращает –5, так как –5 — это меньшее число.
Что больше float или int
В чем разница в C# между типом int и типом float (double)?
Переменная типа int (short, long) позволяет хранить только целые значения, тогда как переменная типа float (double) хранит в себе десятичные значения.
В чем разница между переменными типов int и unsigned int
Но в отличие от int, тип unsigned int может хранить только положительные целые числа в диапазоне от 0 до 65535 (2^16)-1). Отличие кроется в том как unsigned int использует старший бит, иногда называемый знаковый бит.
Чем int отличается от uint
Uint означает «unsigned integer» (беззнаковое целое), в то время как int означает «signed integer» (знаковое целое). Беззнаковое целое может принимать только положительные значения (или ноль). В дополнение к этому существуют два типа-псевдонима: byte (то же самое, что uint8 ) и rune (то же самое, что int32 ).
29.05.2023 В чем разница между int и uint
Int и uint — два типа данных целых чисел в языке программирования C#. Несмотря на то, что оба типа данных занимают одинаковый объем памяти, они имеют некоторые существенные отличия, в частности, в диапазоне хранения значений.
Тип данных int является знаковым и используется для хранения целых чисел, как положительных, так и отрицательных. Диапазон значений этого типа составляет от -2 147 483 648 до 2 147 483 647. Тип данных uint, в свою очередь, является беззнаковым и может хранить только положительные числа в диапазоне от 0 до 4 294 967 295.
Важно отметить, что наличие знака в типе данных int делает его менее гибким в использовании, поскольку знаковый бит является лишь одним из битов, которые занимают память. Беззнаковый тип данных uint, в свою очередь, не содержит знакового бита, что позволяет сократить количество потенциальных ошибок при работе с данными.
Однако, при работе с отрицательными значениями необходимо использовать тип данных int, поскольку uint не может хранить отрицательные значения. Кроме того, при работе с типом данных uint следует обратить внимание на возможность переполнения числа при выполнении арифметических операций, поскольку беззнаковый тип не может хранить отрицательные числа.
Таким образом, при выборе между типами данных int и uint необходимо учитывать характеристики используемых данных и требования к точности вычислений. При выборе беззнакового типа данных uint следует быть особенно внимательным при выполнении арифметических операций, чтобы избежать возможного переполнения чисел.