0 / 0 / 0
Регистрация: 18.12.2018
Сообщений: 11
|
|
1 | |
Маленькие числа, какие для них типы существуют?09.09.2020, 10:56. Показов 1116. Ответов 11
гуляя по интернетам я заметил есть разные варианты написания int
существуют ли типа переменнных которые могу хранить в себе 0-255 значений ЧИСЕЛ, а не чудесный uint8_t который оказзывается не int, а char(из-за чего просто так нельзя присвоить такой переменной число (например 100))?
0
|
09.09.2020, 10:56 | |
Ответы с готовыми решениями:
11
Какие существуют типы вытяжек?
|
Вездепух
![]() ![]() ![]() 12860 / 6725 / 1807
Регистрация: 18.10.2014
Сообщений: 17,025
|
|
09.09.2020, 10:59 | 2 |
???
char - это обычный маленький целочисленный тип, которому можно "просто так" присвоить 100. Следите за знаковостью только. Откуда вы взяли ваше "просто так нельзя"?
0
|
0 / 0 / 0
Регистрация: 18.12.2018
Сообщений: 11
|
||||||
09.09.2020, 11:09 [ТС] | 3 | |||||
Тогда почему я не могу банально перемножить две единицы?
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||||||||||
09.09.2020, 11:18 | 4 | ||||||||||
Скорее всего, ты путаешь с выводом на экран при помощи std::cout, который воспринимает char и uint8_t как символы. А так, это точно такие же числа, как int
То же самое касается std::cin Добавлено через 4 минуты
0
|
![]() ![]() |
|
09.09.2020, 11:29 | 5 |
То что uint8_t выводится как символ а не как число это конечно удручает, но не критично.
Раньше этого типа не было и использовали char или unsigned char. С другой стороны использование char целесообразно при больших объемах т.е. для выигрыша по памяти. Касательно производительности скорее всего её не будет, скорее наоборот будет проигрыш так как обычно вычисления процессора заточены под int. При этом всегда есть вероятность выйти за границы при вычисления. Так что стоит подумать.
0
|
Вездепух
![]() ![]() ![]() 12860 / 6725 / 1807
Регистрация: 18.10.2014
Сообщений: 17,025
|
|
09.09.2020, 11:56 | 6 |
Потому что вы даже и не пытаетесь перемножить "две единицы".
cin >> P; читает из консоли символ '1' , а не число 1 . А символ '1' скорее всего соответствует числу 49 . То есть вы перемножаете 49 и 1 .Это поведение не имеет никакого отношения к типу uint8_t или char как таковому. Это поведение оператора форматированного ввода >> .P.S. Вы в своем исходном сообщении говорили о присваивании. А теперь вдруг привели код, в котором никакого присваивания нет. --- Как правильно заметил Avazart, зачем вы вообще пытаетесь работать напрямую с малыми типами в вводе-выводе? Малые типы предназначены для экономии памяти при хранении больших объемов данных. А ввод-вывод нужно делать в типах int/unsigned int и не беспокоиться о таких засадах.
0
|
248 / 70 / 9
Регистрация: 22.07.2018
Сообщений: 321
|
|
09.09.2020, 11:58 | 7 |
0
|
09.09.2020, 12:02 | 8 |
0
|
![]() 3791 / 2717 / 765
Регистрация: 29.06.2020
Сообщений: 9,983
|
|||||||||||
09.09.2020, 12:17 | 9 | ||||||||||
еще есть битовые поля
4 ячейки по 4 бита = 2 байта Добавлено через 8 минут хотя что б размер структуры был 2 байта
0
|
Диссидент
![]() ![]() 27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
|
|||||||||||
09.09.2020, 14:11 | 10 | ||||||||||
Замечание интересное. Действительно, .char ведет себя не всегда как целое. Особенно в конструкции "cin >>". Так уж для cin перегрузили ">>"
Один из простейших выходов может быть таким
0
|
![]() 3791 / 2717 / 765
Регистрация: 29.06.2020
Сообщений: 9,983
|
||||||
09.09.2020, 14:35 | 11 | |||||
Байт, годно.
Такое поведение с типами char присуще только - стандартному вводу/ выводу - функциям и классам работы с СИ строками Ну а сами по себе встроенный целочисленные типы.
0
|
30.09.2020, 13:02 | 12 |
0
|
30.09.2020, 13:02 | ||||||
Помогаю со студенческими работами здесь
12
Какие существуют загрузчики для UEFI? Какие полезные программы существуют для Windows 7? Какие существуют библиотеки для работы с сокетами? Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
![]() |
Новые блоги и статьи
![]() |
||||
Контейнеризация ML моделей с помощью Docker и Kubernetes
Mr. Docker 14.03.2025
Перенос ML-моделей из лаборатории в продакшн сопровождается целым комплексом проблем. Нередко код, который отлично работает на локальной машине, отказывается функционировать в промышленной среде. . . .
|
Организация масштабируемого хранилища с Apache Cassandra
Codd 14.03.2025
Изначально разработанная в Facebook, а затем переданная Apache Software Foundation, Cassandra сочетает в себе принципы Amazon's Dynamo и Google's BigTable. Эта комбинация создает уникальную. . .
|
Kafka или Pulsar: Что лучше для потоковой обработки в Java
Javaican 14.03.2025
Среди множества решений для потоковой обработки данных Apache Kafka долгое время удерживала лидирующие позиции, став де-факто стандартом в индустрии. Однако в последние годы всё больше внимания. . .
|
Создание и использование компонентов в Vue 3
Reangularity 14.03.2025
Компонент в Vue - это автономный блок интерфейса, который содержит собственную разметку, логику и стили. Представьте себе кнопку, форму ввода или даже целую панель навигации - всё это можно оформить. . .
|
Vue 3: Создаем современное веб-приложение с Composition API
Reangularity 14.03.2025
В фронтенд-разработке Vue 3 выделяется своим прагматичным подходом. В отличие от React с его минималистичной философией "всё — JavaScript" или Angular с его всеобъемлющим корпоративным подходом, Vue. . .
|
Разработка контекстных меню в iOS
mobDevWorks 14.03.2025
С приходом iOS 13 Apple представила новый API для контекстных меню, который полностью заменил предыдущую технологию 3D Touch peek & pop. Хотя многие разработчики и пользователи испытывают ностальгию. . .
|
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
|
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
|
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
|
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH
1. поймать путь через вывод $(pwd)
2. более правильно - на основе realpath (см. скриншот)
|