Форум программистов, компьютерный форум CyberForum.ru

Диапазон данных - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить значение функции, используя разложение в ряд http://www.cyberforum.ru/cpp-beginners/thread652601.html
Такая задачка
C++ cout (double) Всем привет! Подскажите плз как вывести число типа дабл при помощи cout так чтобы были видны столько знаков, сколько я захочу а не 6 (3.12312e+18). double a = 3123123123123123197; cout << double(a) << endl; // Выводит 3.12312e+18 Я хочу чтобы выводил все знаки 3123123123123123197 (ну в общем чтобы все значащие цифры были видны). http://www.cyberforum.ru/cpp-beginners/thread652597.html
C++ Не могу найти где зарыта ошибка
При вводе буквы вылазит следующее: -8500000 (дофига цифр). Когда ввожу цифры, то всё норм. В чём дело? #include <iostream> using namespace std; int main() { int a; cout << "Enter your surname:"; cin >> a;
C++ Матрицы
Дана функция и по ней нужно создать матрицу от минимально х и до максимального х. вот подробнее: http://cs6257.userapi.com/u18481532/docs/f57cbd53e5db/Laboratornaya_rabota_1.pdf объясните с чего начать) вариант можно любой.
C++ Программа расчета по двум формулам http://www.cyberforum.ru/cpp-beginners/thread652576.html
Здравствуйте. Помогите пожалуйста найти ошибку. Нужно, чтобы ответы были одинаковыми #include <iostream> #include <cmath> using namespace std; int main() {
C++ Определить в какой зоне будет лежать точка с координатами (x; y) Необходимо что бы при вводе координат точки (x; y), программа определяла в какой зоне лежит данная точка или лежит ли она на прямых. подробнее

Показать сообщение отдельно
OhMyGodSoLong
~ Эврика! ~
 Аватар для OhMyGodSoLong
1234 / 983 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
16.09.2012, 10:48     Диапазон данных
Потому что так неявно преобразуются типы.
60000 — константа-литерал типа int, в двоичном виде она представляется так:
00000000 00000000 11101010 01100000
Потом её насильно приводят к типу unsigned short int (который у j). То есть отбрасывают первые два байтика:
11101010 01100000
Потом это приводится к типу (signed) short int (который у i).

Так как размеры одинаковые, то ничего не делается. Никаких округлений до максимума, никаких учётов знаков и т. п. Как было в памяти, так и осталось:
11101010 01100000
Это Си++ и наследние Си, который является просто продвинутым ассемблером.

Вот только теперь это знаковое число. В старшем бите единичка, значит, это отрицательное число. Отнимаем единицу, обращаем биты, получаем:
00010101 10100000
А это и есть 5536. То есть –5536.
 
Текущее время: 03:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru