Ключевое слово без знака в C++
имеет ли ключевое слово unsigned значение по умолчанию для определенного типа данных в C++? Я пытаюсь написать функцию для класса для прототипа:
unsigned Rotate(unsigned object, int count)
но я действительно не понимаю, что unsigned средства. Разве это не должно быть похоже unsigned int или что-то?
5 ответов:
с ссылке выше:
некоторые из этих типов могут быть изменены с помощью ключевых слов signed, unsigned, short и long. Когда один из этих модификаторов типа используется сам по себе, тип данных int предполагается
Это означает, что вы можете предположить, что автор использует ИНЦ.
Целое Число Типа:
short -> signed short signed short unsigned short int -> signed int signed int unsigned int signed -> signed int unsigned -> unsigned int long -> signed long signed long unsigned longбудьте осторожны с char:
char (is signed or unsigned depending on the implmentation) signed char unsigned char
имеет ли ключевое слово unsigned значение по умолчанию для типа данных в C++
да, подписанные и неподписанные также могут использоваться в качестве автономных спецификаторов типа
целочисленные типы данных char, short, long и int могут быть либо подписанными, либо беззнаковыми в зависимости от диапазона чисел, которые необходимо представить. Подписанные типы могут представлять как положительные, так и отрицательные значения, в то время как беззнаковые типы могут представлять только положительные значения (и ноль).
беззнаковый целое число, содержащее n битов, может иметь значение от 0 до 2n - 1 (что 2n разные значения).
тем не менее, signed и unsigned также могут использоваться в качестве автономных спецификаторов типа, что означает то же самое, что signed int и unsigned int соответственно. Следующие два объявления эквивалентны:
unsigned NextYear; unsigned int NextYear;
вы можете прочитать о ключевое слово без знака в ссылке на C++.
в этом вопросе есть два разных типа, подписанные и неподписанные. По умолчанию целые числа имеют знак, что означает, что они могут иметь отрицательные значения.
в 32-разрядной системе целое число составляет 32 бита, что означает, что оно может содержать значение ~4 млрд.
и когда он подписан, это означает, что вам нужно разделить его, оставив от -2 миллиардов до +2 миллиардов.
когда это без знака однако значение не может содержат любые отрицательные числа, поэтому для целых чисел это будет означать от 0 до +4 миллиардов.
есть немного больше информации об этом на Википедия.
Да, это означает
unsigned int. Раньше было так, что если вы не указали тип данных в C, было много мест, где он просто предполагалint. Это была попытка, например, типов возвращаемых функций.эта бородавка в основном была искоренена, но вы сталкиваетесь с ее последними остатками здесь. ИМХО, код должен быть исправлен, чтобы сказать
unsigned intчтобы избежать именно такой путаницы, которую вы испытываете.
Comments