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

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

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

Студворк — интернет-сервис помощи студентам
Нужно к максимальному значению некоторого целого типа прибавить единицу и вычесть единицу из минимального
значения. 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
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,914
11.10.2018, 11:39
Цитата Сообщение от 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
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
11.10.2018, 11:43
Цитата Сообщение от Homeless Puppy Посмотреть сообщение
целого типа
Цитата Сообщение от Homeless Puppy Посмотреть сообщение
Cделать нужно для одного типа со знаком
C++
1
2
3
4
5
6
#include <iostream>
 
int main()
{
    std::cerr << "undefined behavior\n";
}
1
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,914
11.10.2018, 14:13
Цитата Сообщение от hoggy Посмотреть сообщение
std::cerr << "undefined behavior\n";
Возможно, это проверка компиляторов, демонстрация как разные компиляторы это обрабатывают
0
0 / 0 / 0
Регистрация: 09.10.2018
Сообщений: 16
15.10.2018, 23:04  [ТС]
Цитата Сообщение от 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
Почитайте https://docs.microsoft.com/en-... ew=vs-2017
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,914
16.10.2018, 12:04
Цитата Сообщение от 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
Цитата Сообщение от 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
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,914
17.10.2018, 10:29
Цитата Сообщение от 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
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
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru