Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.81
tinne
9 / 9 / 0
Регистрация: 13.10.2012
Сообщений: 279
#1

Разница int, short, unsigned int, unsigned short - C++

11.12.2012, 14:30. Просмотров 3451. Ответов 5
Метки нет (Все метки)

Есть например цикл который проходит по массиву в котором 100 элементов.
В чем практическая выгода и разница в истоьзовании типов short, int, unsigned short. Я понимаю, что у них различный диапазон числовых значений.
Например есть цикл
C++
1
2
unsigned short i = 0;
for (i = 0; i < 100; ++i)
и
C++
1
2
int i = 0;
for (i = 0; i < 100; ++i)
В чем разница? Можно же везде под одну гребенку писать int и не парится. Или какая выгода всетаки есть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 14:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разница int, short, unsigned int, unsigned short (C++):

Размер для данных (int, char, long, double, short, unsigned, float) - C++
Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию (о...

Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию - C++
1. Какие типы данных лучше всего использовать для хранения следующих значений: а) возраст человека в текущем году; б) вес человека в...

Как исправить ошибку невозможно преобразовать аргумент 1 из "unsigned int" в "unsigned int []"? - C++
Ребят, срочно прошу вас помочь.. Есть ошибка (невозможно преобразовать аргумент 1 из &quot;unsigned int&quot; в &quot;unsigned int &quot;) как ее...

Тип unsigned short - C++
#include&lt;iostream&gt; using namespace std; unsigned short int USHORT; int main() { USHORT benq = 5;

Unsigned Short - Как из 27015 получить 0x69 и 0x87 - C++
Ребята, прошу помощи. В доукментации стима написано: Unsigned Short Port number - usually 27015 (69 87) - this is network ordered, which...

Поместить двоичный код, в веденной строке, в переменную типа int и unsigned int. - C++
Пользователь вводит двоичную строку (32 символа). Поместить двоичный код, в веденной строке, в переменную типа int и unsigned int.

5
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.12.2012, 14:43 #2
tinne, лучше использовать беззнаковый тип. Так как Вы проходите от нуля и далее(индекс не может быть отрицательным). short выгодней чем int тем, что мы экономим память там, где нам это реально нужно.
1
ZaMaZaN4iK
Мой лучший друг-отладчик!
164 / 164 / 9
Регистрация: 24.06.2012
Сообщений: 662
Записей в блоге: 5
Завершенные тесты: 1
11.12.2012, 14:51 #3
tinne, но будьте аккуратны - если вы присвоите отрицпательное число перемнной беззнакового типа - то будет большая беда
1
tinne
9 / 9 / 0
Регистрация: 13.10.2012
Сообщений: 279
11.12.2012, 14:52  [ТС] #4
Цитата Сообщение от ZaMaZaN4iK Посмотреть сообщение
tinne, но будьте аккуратны - если вы присвоите отрицпательное число перемнной беззнакового типа - то будет большая беда
На сколько большая? Компилятор ругаться будет или что-то по мимо этого может произойти?
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
11.12.2012, 14:59 #5
Цитата Сообщение от tinne Посмотреть сообщение
На сколько большая? Компилятор ругаться будет или что-то по мимо этого может произойти?
Нет. Беды так таковой не будет. Ну сами вдумайтесь переменной, которая может принимать только положительные значиния в заданом диапозоне присвоили отрицательное. Просто старший бит не будет знаком.
1
Kastaneda
Форумчанин
Эксперт С++
4655 / 2863 / 228
Регистрация: 12.12.2009
Сообщений: 7,275
Записей в блоге: 2
Завершенные тесты: 1
11.12.2012, 15:25 #6
или еще такой вариант
C++
1
2
3
4
for (signed char i = 0; i < 128; i++) // бесконечный цикл
{
    // body
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2012, 15:25
Привет! Вот еще темы с ответами:

short int и short - C++
Какая разница, инициализирую я переменную как short int или же как short ? Вроде и тот, и тот тип данных компилятор понимает :)

Определение типов. Приведение int к unsigned int - C++
При таком определении 5 рассматривается как int. Как при определении указать что 5 будет именно unsigned int? unsigned int n=5; ...

short vs int - C++
Зачем в си два типа данных (short, int) с одинаковым диапазоном значений?

char operator[](unsigned short offset) const; // что означает const? - C++
Собстенно вопрос уже озвучен :).


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Yandex
Объявления
11.12.2012, 15:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru