|
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
|
|||||||||||
Зачем нужны разнообразные целые типы переменных?06.09.2012, 13:32. Показов 9874. Ответов 52
Метки нет (Все метки)
1) Вот зачем нам нужен тип short если есть тип long? Как я понял из учебника, если моя переменная будет содержать не слишком большое целое число, то целесообразно использовать short, т.к. он 2 байта (long - 4 байта) и поэтому меньше памяти тратится и соответственно программа работает быстрее. Ну ладно, пусть так (если я, конечно, правильно всё понял).
2) Есть ещё слово unsigned, но тогда переменная не может быть отрицательной. Вот тут на самом деле не ясно, зачем это надо? unsigned long и signed long занимают одинаковый объём памяти. 3) Теперь главное. До того, как я прочитал эту всю ерунду, я всегда писал просто int и никаких проблем. Тут решил писать более разнообразно и везде заменил int на все эти unsigned long int, signed short int и т.п.. И в итоге программа стала выдавать неправильный результат! Пришлось всё поменять как было (везде просто int). Вот интересно стало: кто-нибудь пользуется всем этим разнообразием целых типов? И если да, то зачем? У меня это почему-то привело к ошибкам. Хотя я так и не понял почему. Тем более, что как я понимаю int и signed long int это вообще одно и то же. 4) И ещё: для функции main пишут что надо ставить тип возвращаемого значения int, т.е.
0
|
|||||||||||
| 06.09.2012, 13:32 | |
|
Ответы с готовыми решениями:
52
Целые типы Целые типы данных Целые типы данных |
| 07.09.2012, 13:32 | |||||||
0
|
|||||||
|
27 / 1 / 0
Регистрация: 29.06.2011
Сообщений: 136
|
|||||||
| 07.09.2012, 13:34 [ТС] | |||||||
0
|
|||||||
|
4866 / 3287 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|||
| 07.09.2012, 13:53 | |||
|
signed int равен int signed введён из-за char, который может иметь знак, а может не иметь знака если старший бит является знаковым битом, то он не может являться частью величины значения например, 32-х битная переменная может вместить 2 ^ 32 разных значений если старший бит - знаковый, то эти 2 ^ 32 значений состоят из положительных, отрицательных и нуля если старший бит - беззнаковый, то эти 2 ^ 32 значений состоят из положительных и нуля (а сам бит участвует в образовании величины)
1
|
|||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
|||||||||
| 07.09.2012, 14:08 | |||||||||
![]() хотел поправить но интернет умер правильно читать так
конечно бита просто описался
0
|
|||||||||
|
Заблокирован
|
|
| 23.08.2015, 10:47 | |
|
я тоже задаюсь аналогичными вопросами и никак не могу понять, в каком случае лучше использовать тот или иной тип. думаю, что пока у меня нет в этом необходимости, то буду писать просто int. если кто-нибудь знает простую методику запонимания какой переменной какой тип лучше, кроме опыта и зазубривания, то было бы неплохо её выложить. я думаю многие новички оценят
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||
| 23.08.2015, 11:14 | ||
|
Например, в каких-то случаях лучше скорость, а в других - кол-во использованной памяти. Поэтому однозначной рекомендации для всех быть не может.
0
|
||
|
Заблокирован
|
|
| 23.08.2015, 11:23 | |
|
Tulosba, вы имеет в виду, что такой методики нет? я говорю про методику запоминания преимуществ или недостатков типа переменных, а не их надобности. например, помните как запоминали в школе падежи?
Иван Родил Девченку Велел Тащить Пелёнку или пример именно из программирования: если число д.б. с запятой, то автоматом в памяти всплывает float. получается такая простая ассоциативность запятая значит float. и если есть какая-либо ассоциативность на другие типы, то я был бы рад) если нет, то придётся зубрить
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
|||||||
| 23.08.2015, 11:33 | |||||||
0
|
|||||||
|
Респект C++
23 / 33 / 14
Регистрация: 11.06.2015
Сообщений: 384
|
|
| 23.08.2015, 11:41 | |
|
Мой вам совет. Используйте double. С ним вообще никаких проблем. Он и слишком большие числа считает, и десятичные, шестнадцатиричные, и целые да и вообще самый удобный. А про unsigned - конечно будет неправильный ответ. Он даже переводится как "беззнаковый".
1
|
|
|
Заблокирован
|
|
| 23.08.2015, 11:52 | |
|
FCommander, double пишется как double или double int?
0
|
|
|
:)
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
|
||||||||
| 23.08.2015, 11:53 | ||||||||
Добавлено через 1 минуту
1
|
||||||||
|
Заблокирован
|
||
| 23.08.2015, 12:03 | ||
|
0
|
||
|
19506 / 10109 / 2464
Регистрация: 30.01.2014
Сообщений: 17,834
|
|||||||
| 23.08.2015, 12:08 | |||||||
|
Если сейчас выводить правила в стиле "если - то", то их получится гораздо больше, чем типов в языке, потому что у каждого типа множество различных применений в зависимости от ситуации. Вот простой пример:
Главное помнить, что серебряной пули нет. Нет одного универсального правила на все случаи жизни. Могут быть только рекомендации, например: - использовать size_t для обозначения размеров, это беззнаковый целый тип. - использовать ptrdiff_t для разницы указателей, это знаковый целый тип. Кстати, прочитать про это можно тут.
4
|
|||||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||
| 23.08.2015, 16:07 | |||||||||
|
стандарт предусматривает тип данных size_t, специально предназначенный для хранения размеров типов, и как следствие - индексов массивов. в большинстве реализаций size_t и unsigned - одно и тоже. а вот использовать для таких целей int - некорректно. это модификаторы для фундаментального типа int. есть фундаментальный тип int, и кучка модификаторов к нему, такие как short, или long. однако, на практике инты с различными модификаторами опознаются как разные типы. что и порождает иллюзию, что это принципиально различные типы. впрочем если их рассматривать, как принципиально разные типы, то вы ничего страшного не упустите. сами модификаторы влияют лишь на размер фундаментального типа. что однако, попадает под правило "промоушена типов". поэтому, можно сказать, что модификаторы типов влияют так же и на промоушен типов. "промоушен типов" - если вкратце, оптимизация вычислений по разрядной сетке машины. пример: http://rextester.com/NTVU87023
язык с++ возник не вчера. он возник во времена, когда ещё не было никаких "современных процессоров". кроме того, в его основе заложена идея о "встраиваемости", что неизбежно влечет за собой необходимость "адаптации" к самым различным условиям. то есть, он должен максимально эффективно работать на самых разных платформах. за счет модификаторов и промоушена становится возможным реализовать оптимизации вычислений на конкретной платформе.
2
|
|||||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 23.08.2015, 17:51 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 23.08.2015, 18:14 | ||
|
http://en.cppreference.com/w/cpp/language/types
0
|
||
|
Модератор
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
|
||||
| 23.08.2015, 18:19 | ||||
|
0
|
||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 23.08.2015, 18:27 | |
|
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 23.08.2015, 18:30 | |
|
0
|
|
| 23.08.2015, 18:30 | |
|
Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? Зачем в MSVC дублируются типы данных? Не понимаю зачем нужен конструктор и типы методов Зачем нужны транзакции? Зачем нужны исключения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|