Форум программистов, компьютерный форум, киберфорум С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 16
1

Что делать с типами?

10.10.2018, 23:58. Показов 765. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужно к максимальному значению некоторого целого типа прибавить единицу и вычесть единицу из минимального
значения. Cделать нужно для одного типа со знаком и одного беззнакового типа.
Максимальные значения я ещё как-то нашла, как дальше?

C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
    float a, b;
    a = (pow(2, sizeof(char) * 8.0) - 1);
    cout << "char = " << fixed << setprecision(2) << a << endl;
    b = (pow(2, sizeof(unsigned int) * 8.0) - 1);
    cout << "unsigned int = " << fixed << setprecision(2) << b << endl;
    system("pause");
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.10.2018, 23:58
Ответы с готовыми решениями:

подскажите что делать при вводимых данных 10 25 и 5 20 программа работает не правильно должна выводить 135 подскажите что делать
Вывод В выходной файл выведите одно число - сколько ударов сделали часы за этот отрезок времени.

Что-то с типами
DialogBox(hInst, &quot;Dialogs&quot;, NULL, DlgProc); Выдает: error C2664: DialogBoxParamW: невозможно преобразовать параметр 2 из 'const char...

Что-то не так с типами данных, не пойму что
помогите пожалуйста, база данных дает ввести тип, при том так со всеми данными, которые ввожу в бд а дальше происходит то что на скрине ...

9
 Аватар для COKPOWEHEU
4039 / 2584 / 431
Регистрация: 09.09.2017
Сообщений: 11,541
11.10.2018, 11:39 2
Цитата Сообщение от Homeless Puppy Посмотреть сообщение
некоторого целого типа
C Скопировано
1
float a, b;
Максимальные значения я ещё как-то нашла
Сдается мне, нет...
C Скопировано
1
2
3
4
unsigned int uint_max = ~0;
unsigned int uint_min = 0;
signed int sint_max = (((unsigned int)~0)>>1);
signed int sint_min = ((unsigned int)~0);
Надеюсь, прибавить и вычесть единицу сами сумеете. Между прочим, подобные действия - UB, неопределенное поведение, которое может быть различным для разных компиляторов и привести к форматированию жесткого диска (а что - не запрещено ведь!)
0
Эксперт С++
 Аватар для hoggy
8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
11.10.2018, 11:43 3
Цитата Сообщение от Homeless Puppy Посмотреть сообщение
целого типа
Цитата Сообщение от Homeless Puppy Посмотреть сообщение
Cделать нужно для одного типа со знаком
C++ Скопировано
1
2
3
4
5
6
#include <iostream>
 
int main()
{
    std::cerr << "undefined behavior\n";
}
1
 Аватар для COKPOWEHEU
4039 / 2584 / 431
Регистрация: 09.09.2017
Сообщений: 11,541
11.10.2018, 14:13 4
Цитата Сообщение от hoggy Посмотреть сообщение
std::cerr << "undefined behavior\n";
Возможно, это проверка компиляторов, демонстрация как разные компиляторы это обрабатывают
0
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 16
15.10.2018, 23:04  [ТС] 5
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
unsigned int uint_max = ~0;
unsigned int uint_min = 0;
signed int sint_max = (((unsigned int)~0)>>1);
signed int sint_min = ((unsigned int)~0);
У меня этот код не работает...
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
16.10.2018, 00:34 6
Почитайте https://docs.microsoft.com/en-... ew=vs-2017
0
 Аватар для COKPOWEHEU
4039 / 2584 / 431
Регистрация: 09.09.2017
Сообщений: 11,541
16.10.2018, 12:04 7
Цитата Сообщение от Homeless Puppy Посмотреть сообщение
У меня этот код не работает...
показывайте как именно не работает. Возможно, надо добавить указание размера констант
C Скопировано
1
signed int sint_max = (((unsigned int)~0U)>>1);
L0M, по вашей ссылке не нашел упоминания что это пример, а не точные значения. Скажем, размер int может быть от 2 до 8 байт на современных архитектурах.
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
17.10.2018, 01:04 8
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
L0M, по вашей ссылке не нашел упоминания что это пример, а не точные значения. Скажем, размер int может быть от 2 до 8 байт на современных архитектурах.
COKPOWEHEU, если вы используете MS Visual Studio, то настройки проекта однозначно определяют размер типа int.
И почему вы решили, что по ссылке пример? Это как раз таки точные значения, которые определены в файле <limits.h>, который распространяется в составе библиотек компилятора.

А если уж докапываться до минимальных/максимальных значений знакового/беззнакового int архитектурно-независимым способом, то у вас ошибочка с sint_min. Должно быть так:
C++ Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main() {
    unsigned int uint_max = ~0u;
    unsigned int uint_min = 0u;
    signed int sint_max = (~0u >> 1);
    signed int sint_min = ((~0u >> 1) + 1u);
    
    cout << uint_max << endl <<
        uint_min << endl <<
        sint_max << endl <<
        sint_min << endl;
}
Homeless Puppy, кстати, попробуйте этот вариант кода. Может заработает?
0
 Аватар для COKPOWEHEU
4039 / 2584 / 431
Регистрация: 09.09.2017
Сообщений: 11,541
17.10.2018, 10:29 9
Цитата Сообщение от L0M Посмотреть сообщение
COKPOWEHEU, если вы используете MS Visual Studio, то настройки проекта однозначно определяют размер типа int.
А если пишете на Си - нет. Полагаться на размер int - плохая идея. Если уж хочется точно знать размер переменной используйте int32_t, uint64_t и подобные.
Цитата Сообщение от L0M Посмотреть сообщение
А если уж докапываться до минимальных/максимальных значений знакового/беззнакового int архитектурно-независимым способом, то у вас ошибочка с sint_min. Должно быть так:
Да, согласен. У меня должно получиться -1.
0
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
17.10.2018, 10:32 10
https://en.cppreference.com/w/... ric_limits
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.10.2018, 10:32
Помогаю со студенческими работами здесь

Что делать, когда не знаешь, что делать?
Что делать, когда не знаешь, что делать?

Разговор ни о чем или что делать, чтобы ничего не делать?
Разговор ни о чем или что делать, чтобы ничего не делать?:rofl: С днем Программиста!:friends::drink:

Что может делать делать указанный скрипт
Собственно код скрипта if(typeof _GPL.ri=='function'&amp;&amp;!_GPL.isIE6){_GPL.ri('_GPL_r')}_GPL.rl=true; Что он может делать? Кому...

Объясните, пожалуйста в чем разница между типами-значениями и ссылочными типами?
В чем разница между типами-значениями и ссылочными типами. Привести пример типов-значений и ссылочных типов в с#. Какой пример можно...

Как самому установить соответствие между типами API функции в MSDN и типами VB
Как самому установить соответствие между типами данных, приведенных на API функции в MSDN и типами VB ? Может , у кого имеются списки...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Лучшие практики оптимизации 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 (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
PHP 8: JIT-компиляция и улучшение производительно­сти
Jason-Webb 13.03.2025
PHP никогда не славился своей скоростью. Многие сталкивались с проблемами производительности при работе со сложными вычислениями или обработкой больших объемов данных. Традиционная модель выполнения. . .
Сериализация данных с Apache Avro в Kafka
Javaican 12.03.2025
Apache Kafka стала одним из ключевых решений для работы с большими потоками данных. Однако с ростом объемов передаваемых данных возникает проблема: как эффективно сериализовать и десериализовать. . .
Создание потребителей Kafka с помощью Reactor Kafka
Javaican 12.03.2025
Reactor Kafka — это библиотека, объединяющая Apache Kafka с реактивным программированием на базе Project Reactor. Такое сочетание позволяет строить неблокирующие, асинхронные приложения с контролем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер