Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 30.10.2022
Сообщений: 9

Вместо отрицательных чисел выводятся нули

09.11.2022, 19:18. Показов 1295. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, по какой-то причине вместо отрицательных значений выводятся нули. Можете подсказать где ошибка или помочь ее исправить?

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
void signrange(int* x);
void unsignrange(int* y);
void unslonglong(int* z);
 
int main() {
    int byte = 0;
 
    int a[2];
    byte = (int)(a + 1) - (int)(a);
    printf("int: %d, ", byte);
    signrange(&byte);
 
    short int b[2];
    byte = (int)(b + 1) - (int)(b);
    printf("short int: %d, ", byte);
    signrange(&byte);
 
    unsigned short int c[2];
    byte = (int)(c + 1) - (int)(c);
    printf("unsigned short int: %d, ", byte);
    unsignrange(&byte);
 
    char d[2];
    byte = (int)(d + 1) - (int)(d);
    printf("char: ");
    printf("%d, ", byte);
    signrange(&byte);
 
 
    unsigned char e[2];
    byte = (int)(e + 1) - (int)(e);
    printf("unsigned char: ");
    printf("%d, ", byte);
    unsignrange(&byte);
 
    unsigned int f[2];
    byte = (int)(f + 1) - (int)(f);
    printf("unsigned int: ");
    printf("%d, ", byte);
    unsignrange(&byte);
 
    unsigned long long int g[2];
    byte = (int)(g + 1) - (int)(g);
    printf("unsigned long long int: %d,  ", byte);
    unslonglong(&byte);
 
    float h[2];
    byte = (int)(h + 1) - (int)(h);
    printf("float: %d \n", byte);
 
    double i[2];
    byte = (int)(i + 1) - (int)(i);
    printf("double: %d ", byte);
 
}
void signrange(int* x) {
 
    long long  Min = 0;
    long long  Max = 0;
    short bit = 0;
    bit = (*x) * 8;
    Max =   pow(2, bit - 1) - 1;
    Min = -Max - 1;
    printf("%d, %d\n", Max, Min);
 
}
void unsignrange(int* y) {
    short  Min = 0;
    unsigned long long Max = 0;
    short bit = 0;
    bit = (*y) * 8;
    Max = pow(2, bit) - 1;
    printf("%llu, %d \n", Max, Min);
}
void unslonglong(int* z) {
    short  Min = 0;
    unsigned long long Max = 0;
    short bit = 0;
    bit = (*z) * 8;
    Max = 1 + 2 * ((unsigned long long)pow(2, bit - 1) - 1);
    printf("%llu, %d\n", Max, Min);
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2022, 19:18
Ответы с готовыми решениями:

В окне консоли вместо нужных значений выводятся нули или единицы
При написании программы столкнулся с проблемой такого плана. Делал лабораторную работу 21 задание, написал код, он компилировался без...

Из файла выводятся нули
В файле записано какое-либо число #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; #include &lt;string.h&gt; #include...

Выводятся ненужные нули
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; void InputArray(double a, unsigned n); void PrintArray(double a,...

23
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7818 / 4637 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
18.11.2022, 13:03
Студворк — интернет-сервис помощи студентам
Вычисление границ (а по заданию их нужно именно вычислять), тривиально.
Для беззнаковых: 0..~0.
Для знаковых, n=1; for (i=0; n<<i>0; ++i); i..i^~0.
0
 Аватар для Наталья8
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,370
18.11.2022, 13:03
TheCalligrapher,

Я не очень умный. Я просто пару ошибок нашёл, и всё.
Работает... И чем вам pow не нравиться?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13233 / 6865 / 1827
Регистрация: 18.10.2014
Сообщений: 17,398
18.11.2022, 13:14
Цитата Сообщение от easybudda Посмотреть сообщение
Оно же 0х80000001 не? Отнять 1, будет 0х80000000.
Ничего не понял. При чем здесь 0х80000001 вообще? 0х80000001 - это 2147483649. 2147483649 вроде никто пока нигде не упоминал.

Цитата Сообщение от easybudda Посмотреть сообщение
Это вообще откуда?
Оттуда что, с математической точки зрения -INT_MAX-1 и -(INT_MAX+1) - это одно и то же. Но в С правильным вариантом является именно и только -INT_MAX-1. Это вариант правилен именно потому, что позволяет избежать вылета за пределы типа int.

Это же одна из самых популярных и заезженных баек в С: почему нельзя делать #define INT_MIN (-2147483648) или #define INT_MIN -(INT_MAX + 1), а нужно делать именно #define INT_MIN (-2147483647 - 1) или #define INT_MIN (-INT_MAX - 1)

Цитата Сообщение от easybudda Посмотреть сообщение
А как по вашему INT_MIN в шеснадцатиричном виде выглядит?
Не совсем понимаю, при чем здесь это. Но раз уж вы спрашиваете: -214748364810 = -8000000016, наверное.
0
 Аватар для Наталья8
638 / 396 / 68
Регистрация: 09.03.2016
Сообщений: 4,370
18.11.2022, 13:20
https://www.cyberforum.ru/atta... 1668766791
Вложения
Тип файла: mp4 33333.mp4 (1.97 Мб, 9 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2022, 13:20

Вместо отсортированного массива выводятся нули
задание: ввести число, посчитать его цифры и вывести их расставленными в порядке возрастания. у меня выводятся нули, никак не пойму,...

в memo выводятся нули вместо результата
Добрый день!в delphi новичок,не подскажите,почему в Memo вместо результата выводятся одни нули?задача-найти среднее арифметическое,и...

В массиве записать вместо отрицательных элементов нули
Не могу понять, как в одномерном массиве записать вместо отрицательных элементов нули, нужен пример.

Вместо отрицательных элементов в матрицу записать нули, посчитать их количество
Составить схему алгоритма и программу циклического вычислительного процесса. Варианты задачи приведены в табл. 4. Ввод данных выполнить с...

Вместо чисел выводятся символы
не могу понять почему вместо чисел выводятся разные символы #include &lt;iostream&gt; using namespace std; int main(void) { ...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
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 и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru