Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kalonord
28 / 28 / 4
Регистрация: 27.01.2014
Сообщений: 785
#1

Возведение числа типа int в степень - C++

02.09.2015, 01:20. Просмотров 527. Ответов 11
Метки нет (Все метки)

Здравствуйте.

C++
1
2
3
4
5
6
7
8
int n = 2;
    int x = 2;
 
    while (n)
    {
        n = x * n;
        cout << n << endl;
    }
Вывод в консоль:
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
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536
131072
262144
524288
1048576
2097152
4194304
8388608
16777216
33554432
67108864
134217728
268435456
536870912
1073741824
- 2147483648
0
Как вообще вылезло значение - 2147483648?
В конце, ноль это я так понимаю, что больше переменная хранить не может и поэтому выводится ноль(догадка). Но откуда это значение с отрицательным знаком?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2015, 01:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Возведение числа типа int в степень (C++):

Несмотря на то, что переменная С имеет тип long int, возведение, к примеру, 100 в степень 5 совершается неверн - C++
Ребят, раньше программировал ( на уровне любителя ) только на скриптовых языках с динамической типизацией (в основном JS и Python), но так...

Возведение из числа степень - C++
Прошу помочь. Вводим любое число n и надо возвести её степень. (притом, должно быть или 2 в степени x, или 3) Например: n=81 &gt;&gt; 3 в...

Возведение числа n в степень m. - C++
Написать программу - возведение числа n в m-ю степень. Входные данные поступают с клавиатуры. Результат выводится на экран.

Возведение числа в степень - C++
Помогите написать программу, возводящщую число M в степень N (-10&lt;M&lt;10, 0&lt;N&lt;10 - проверить выполнение данных условий)

Возведение числа а в степень n - C++
Возведение числа а в степень n ,задача не проста чем , 1&lt;=а&lt;=10 | 1&lt;=n&lt;=7000 Степень может быть 7000 , и тут у меня возникли трудности ,...

Возведение числа в степень n-1 - C++
Есть формула {(-1)}^{n-1}*{3}^{n-1} , n увеличивается циклом на 1. Как записать числа в степень n-1 без пользов. и стандартных функций??...

11
_Ivana
3185 / 1801 / 153
Регистрация: 01.03.2013
Сообщений: 5,030
Записей в блоге: 3
02.09.2015, 01:24 #2
Да, в АВР-студии для микроконтроллеров на чистом Си у меня такого не было Это все Майкрософт и корпорации довели до такого положения вещей....
2
kalonord
28 / 28 / 4
Регистрация: 27.01.2014
Сообщений: 785
02.09.2015, 01:25  [ТС] #3
Цитата Сообщение от _Ivana Посмотреть сообщение
Это все Майкрософт и корпорации довели до такого положения вещей....
А с чем это связано, это как-то объясняется?
0
zer0mail
2368 / 1998 / 199
Регистрация: 03.07.2012
Сообщений: 7,186
Записей в блоге: 1
02.09.2015, 01:35 #4
Объясняется вашей неграмотностью . Изучайте, что такое "целый тип" и "целый тип без знака".
0
_Ivana
3185 / 1801 / 153
Регистрация: 01.03.2013
Сообщений: 5,030
Записей в блоге: 3
02.09.2015, 01:36 #5
Заговор. Чтобы код, правильно компилирующийся и работающий в МС Студии, давал ошибки у конкурентов.
1
zer0mail
2368 / 1998 / 199
Регистрация: 03.07.2012
Сообщений: 7,186
Записей в блоге: 1
02.09.2015, 01:37 #6
Для простоты рассмотрите случай, когда для хранения целого используется не 32 бита, а только 4 (или 3).
0
_Ivana
3185 / 1801 / 153
Регистрация: 01.03.2013
Сообщений: 5,030
Записей в блоге: 3
02.09.2015, 01:38 #7
Да, с Char такая же ерунда.
0
kalonord
28 / 28 / 4
Регистрация: 27.01.2014
Сообщений: 785
02.09.2015, 01:42  [ТС] #8
Цитата Сообщение от zer0mail Посмотреть сообщение
Объясняется вашей неграмотностью . Изучайте, что такое "целый тип" и "целый тип без знака".
Окей, выходит, что вывод абсолютно нормален. Тогда к чему было это:
Цитата Сообщение от _Ivana Посмотреть сообщение
Да, в АВР-студии для микроконтроллеров на чистом Си у меня такого не было Это все Майкрософт и корпорации довели до такого положения вещей...

Не по теме:

Я просто сделал задание по книге. И там вопрос: что случилось когда вы выполнили эту программу? Вот мне и интересно почему так.

0
_Ivana
3185 / 1801 / 153
Регистрация: 01.03.2013
Сообщений: 5,030
Записей в блоге: 3
02.09.2015, 01:45 #9
Цитата Сообщение от kalonord Посмотреть сообщение
Тогда к чему было это:
К тому, что там бы результат был другим.
1
kalonord
28 / 28 / 4
Регистрация: 27.01.2014
Сообщений: 785
02.09.2015, 01:48  [ТС] #10
Цитата Сообщение от _Ivana Посмотреть сообщение
К тому, что там бы результат был другим.
Я это понял. Ладно, буду разбираться.
0
Renji
1963 / 1361 / 307
Регистрация: 05.06.2014
Сообщений: 3,893
02.09.2015, 03:28 #11
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от kalonord Посмотреть сообщение
Как вообще вылезло значение - 2147483648?
Арифметическое переполнение. Подробнее - изучать двоичное представление числа со знаком.
1
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
02.09.2015, 09:44 #12
Цитата Сообщение от _Ivana Посмотреть сообщение
Это все Майкрософт и корпорации довели до такого положения вещей....
Цитата Сообщение от kalonord Посмотреть сообщение
А с чем это связано, это как-то объясняется?
Страуструп пишет, что проверка на переполнение стандартом не предусмотрена, и что будет при переполнении - тоже, но, как правило, при переполнении знакового значение становится отрицательным. Гарантируется, что исключения в случае переполнения не генерируются.
1
02.09.2015, 09:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2015, 09:44
Привет! Вот еще темы с ответами:

Возведение числа в отрицательную степень - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Rus&quot;); double a, b , pow(1),...

Возведение в степень, отрицательные числа - C++
В библиотеке &lt;cmath&gt; есть такая функция pow(A,B) - получаешь результат возведения A в степень B Решил написать свой pow с положительными...

Возведение отрицательного числа в степень - C++
Написал программу по нахождению суммы ряда с заданной точностью(условия ниже). Возникла проблема с возведением отрицательного числа. ...

Рекурсивное возведение в степень числа - C++
Рекурсивная функция,которая принимает 2 параметра:первый-число,второй-степень в которую нужно возвести число.Всё просто.Но до моей тупой...


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

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

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