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

Зачем нужны модификаторы типов? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ вычисление интегралов по квадратичной форме Симпсона(парабол) http://www.cyberforum.ru/cpp-beginners/thread605750.html
Написать программу производящую вычисление интегралов по квадратичной форме Симпсона(парабол) и протестировать ее на простых подынтегральных функциях (f(x)= x^n n=0,1,2..., f(x)=sinx... и т.п.) Кроме численного значения интеграла выводить h или N для которого была достигнута заданная точность
C++ Проблема с односвязным списком задание:Дан текстовый файл, компонентами которого являются целые числа. Удалить из файла группы подряд идущих одинаковых чисел. #include <fstream> #include <iostream> #include <locale.h> #include <stdlib.h> #include <conio.h> #include <stdio.h> using namespace std; struct LIST { int number; http://www.cyberforum.ru/cpp-beginners/thread605749.html
C++ Программа на решение СЛАУ методом Якоби
Вывести значение решения и количество итераций
C++ Решение СЛАУ методом Якоби
Решить СЛАУ методом Якоби. Вывести значения решения, график зависимости нормы невязки от номера итерации и его значение, при котором достигнута заданная точность ε
C++ Объясните задачу пожалуйста http://www.cyberforum.ru/cpp-beginners/thread605713.html
#include <stdio.h> #include <iostream> #include <string.h> #include <conio.h> void main(void) { char str; int Word = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; int i;
C++ Создать два класса «целое» и «матрица». Определить конструктор\деструктор\функцию Добрый день, нужна помощь в написании кода к следующей задаче, не успеваю сделать до зачета :( Задача: Создать два класса «целое» и «матрица». Определить конструкторы: по умолчанию, с параметром (для класса «матрица» с двумя параметрами). Определить конструктор копирования, деструкторы. Определить функцию-член класса для умножения матрицы на целое. Заранее спасибо за помощь! подробнее

Показать сообщение отдельно
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.06.2012, 06:48     Зачем нужны модификаторы типов?
signed - это знаковый, unsigned - беззнаковый.
На лекции было всего два студента, внезапно встали и ушли пятеро, а лектор и говорит: сейчас придут ещё трое и вообще ни кого не останется.
Количество - это всегда unsigned, так как оно не может быть отрицательным. Но если разрядность большая, есть защита от неправильных входных данных, а максимально допустимое значение мало, то можно unsigned не ставить. unsigned уже даёт встроенную защиту от отрицательных и позволяет избежать if, но не позволяет сравнивать с нолём в цикле, если цикл до ноля включительно. Но если у тебя условие строго >0, или даже какого то положительного числа, то это не актуально и
C++
1
2
unsigned int i; 
for (i=n-1; i<n; --i)// на последнем шаге цикла i переполнится вниз при --i и станет равно максимально представимому значению, что больше любого другого n, а если n максимально представимо, то равно n
.
ноль программистов ругал сердитый шев, потом уволил одного и стало их FF.
FF в unsigned - это по-десятичному 255, а не -1. То есть ноль минус один равно много. Получается, что сравнение с нолём тоже не так актуально. Да и цикл может быть не до ноля включительно, а до ноля, не включая его, то есть до единицы включительно,
C++
1
2
unsigned int i; 
for (i=n; i>0; --i)// тоже сработает
. Если число может быть и отрицательным, то оно всегда signed. small, short, long, hyper и long long - разрядность. sizereof(small)<sizereof(short)<=sizereof(int)<=sizereof(long)<<sizereof(long long). И sizereof(long)<sizeof(hyper). Но как соотносятся long long и hyper и есть ли вообще в диалекте small и hyper - отдельный вопрос, общего ответа не имеющий.

Добавлено через 55 секунд
Цитата Сообщение от koder Посмотреть сообщение
Диапазон - ^_^,к примеру что это -128 127 и опять же зачем?
Ну а если ты с дуру введёшь 200?

Добавлено через 3 минуты
Цитата Сообщение от Vlad1slav Посмотреть сообщение
hort используется для экономии памяти, если у тебя очень большой массив данных храниться, допустим на 10^9 элементов, то int займёт 4 Гб, а short в 2 раза меньше(хотя на некоторых компах int=short).
long займёт больше, чем short. Во сколько раз - вопрос отдельный. Обычно в два. А может в четыре? А вот int займёт ровно столько же, сколько или short, или long.

Добавлено через 2 минуты
Цитата Сообщение от Байт Посмотреть сообщение
На 64-х битовых процессорах long уже становится 8-ми байтовым. (от транслятора, конечно, зависит, но они как правило стараются на всю катушку)
А short - 4-х? Врядли. И int там обычно 4 байта. Разрядность повышали не для арифметики, а для адреса и мемсайзных типов. То есть для памяти и количества данных: аддерсное пространство x64 = 16ЭБ.

Добавлено через 1 минуту
Цитата Сообщение от koder Посмотреть сообщение
Интересно для каких это проектов понадобится).Ну суть понята спасибо,странно что Шилдт этой теме уделяет время в книге для начинающих ибо без реальной задачи с оптимизацией тяжело разобраться.
А при чём здесь вообще оптимизация?
 
Текущее время: 02:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru