Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 21.11.2018
Сообщений: 6
1

Переполнение и тип данных

20.08.2019, 14:24. Показов 1622. Ответов 7
Метки нет (Все метки)

Есть задание, в котором надо перемножить 4 переменные (W, H, D, R), причем W, H, D <= 10^4, R <= 100. Переменную для результата объявил long long unsigned int, но ее не хватает для сохранения максимального значения. Как быть?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2019, 14:24
Ответы с готовыми решениями:

Переполнение типа данных
Необходимо написать программу на с++, которая обрабатывает двадцатизначные числа. Следовательно,...

Как сделать тип данных или уже есть такой тип данных который состоит из всех печатыемых символов?
Как сделать тип данных или уже есть такой тип данных который состоит из всех печатыемых символов?...

Тип ошибки: Ошибка выполнения Microsoft VBScript (0x800A0006) Переполнение: 'cint' /cgi/head.inc, line 30
Ребята. Что это? Тип ошибки: Ошибка выполнения Microsoft VBScript (0x800A0006) Переполнение:...

Переполнение базы данных
Пытался найти информацию по поводы обработки ситуации с переполнением базы данных (2 Гб), нашел в...

7
1685 / 891 / 364
Регистрация: 11.10.2018
Сообщений: 4,681
20.08.2019, 14:27 2
Ну double берите тогда. Или long double.
0
864 / 533 / 173
Регистрация: 30.07.2015
Сообщений: 1,720
20.08.2019, 14:31 3
EnjoyTheSilence, погуглите длинную арифметику
0
16 / 16 / 2
Регистрация: 23.02.2012
Сообщений: 128
20.08.2019, 14:31 4
Например, можно большие числа использовать. Умножение больших чисел не так уж и сложно сделать.
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
20.08.2019, 15:01 5
Лучший ответ Сообщение было отмечено EnjoyTheSilence как решение

Решение

Цитата Сообщение от EnjoyTheSilence Посмотреть сообщение
Есть задание, в котором надо перемножить 4 переменные (W, H, D, R), причем W, H, D <= 10^4, R <= 100. Переменную для результата объявил long long unsigned int, но ее не хватает для сохранения максимального значения. Как быть?
Там всего 14 знаков, в 64-битное целое влазят 20.
Проблема скорее всего в том, что W, H, D, R тоже надо объявить как unsigned long long, а не только результат.
1
0 / 0 / 0
Регистрация: 21.11.2018
Сообщений: 6
20.08.2019, 16:04  [ТС] 6
oleg-m1973, спасибо, помогло. Только я не понял, почему остальные переменные тоже надо объявлять unsigned long long? Типы, меньшие размером, не должны автоматически переходить в тип большей переменной?
0
6737 / 4537 / 1838
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
20.08.2019, 16:08 7
Цитата Сообщение от EnjoyTheSilence Посмотреть сообщение
Типы, меньшие размером, не должны автоматически переходить в тип большей переменной?
В твоём случае приводился только конечный результат. В процессе умножения всегда был тип int (или какой там), он и переполнялся. В принципе вроде достаточно только, чтоб первый множитель был нормального типа, остальные привелись бы к нему.
1
6277 / 4261 / 2454
Регистрация: 18.12.2017
Сообщений: 13,286
20.08.2019, 16:34 8
Цитата Сообщение от EnjoyTheSilence Посмотреть сообщение
надо перемножить 4 переменные (W, H, D, R), причем W, H, D <= 10^4, R <= 100.
вопрос решён при условии что W, H, D, R - натуральные числа, но это не указано. напишите оригинал условия задачи.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2019, 16:34

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Подскажите тип данных в ADO, если в SQL сервере тип Text ?
Господа подскажите тип данных в ADO, если в SQL сервере тип Text ?

Какой тип данных использует VBA, если тип явно не объявлен
Какой тип данных использует VBA, если тип явно не объявлен

отловить переполнение типа данных
Здравствуйте:) У меня возник вопрос по сабжу. допустим мы присваиваем переменной типа double...

Enum и типы данных. Как задать тип значений явно, и какой тип будет при переполнении?
Пытаюсь сделать функцию с передачей нескольких параметров,используя битовые операции. В качестве...

Чтение недопустимых данных и переполнение буфера
Жалуется на чтение недопустимых данных на 24 и 55 строках, и на переполнение буфера на 51 и 61...

Перечисляемый тип данных.Символьный тип.
1.type месяц = ( янв, фев, мар, апр, май, июн, июл, авг, сен, окт, ноя, дек ); год = (високосный,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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