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

short vs int - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Посоветуйте сборник задач по классам http://www.cyberforum.ru/cpp-beginners/thread102789.html
подскажите название какого нибудь сборника задач(книги) по классам.
C++ Функции добавления, удаления данных в массиве. Есть код в котором создается новый массив, помогите написать функции добавления, удаления и вывода инфы. void Add(Array *arr, double val) { // ... } void Del(Array *arr, unsigned int... http://www.cyberforum.ru/cpp-beginners/thread102788.html
C++ Наибольший общий делитель двух целых чисел
Написать программу, которая вычисляет наибольший общий делитель двух целых чисел. Пример: Вводите после стрелки числа. -> 45 -> 15 Наибольший общий делитель чисел 45 и 15 равен 15
Минимальное число в последовательности C++
Написать программу, которая определяет минимальное число во введенной с клавиатуры последовательности чисел (длина последовательности не ограничена). Пример: Вводите после стрелки числа. Для...
C++ указатели,вроде ошибка в книге http://www.cyberforum.ru/cpp-beginners/thread102757.html
снова ошибка в книге снова разочаровние...=\ вот код #include <windows.h> #include<iostream> using namespace std; int main(){ int myage=5; int *page=0; cout<<"myage:"<<myage<<endl;...
C++ Проверка ввода Как ограничить ввод символов в программе!!!! На каждый символ, который был введен выдавать сообщение о неправильном вводе????? Надо чтоб можна было ввести только цифры??? подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
17931 / 6155 / 408
Регистрация: 30.03.2009
Сообщений: 16,905
Записей в блоге: 27
10.03.2010, 11:27
В стандарте по поводу размеров типов сказано следущее:
1. Специфечируется размер только для типа char: sizeof(char) = 1 байту
2. Размер всех остальных типов не оговариваются, однако оговаривается соотношение между =х размерами: sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)
3. В более поздних стандартах появился тип long long: sizeof(long) <= sizeof(long long)

Исторически сложилось, что на "обычных" архитектурах размеры типов следующие:
16-битные платформы: char = 1, short = 2, int = 2, long = 4
32-битные платформы: char = 1, short = 2, int = 4, long = 4, long long = 8
64-битные платформы: char = 1, short = 2, int = 4, long = 8, long long = 8
Под "обычными" архитектурами понимаю архитектуры с униварсельными процессорами, а не всякие типа сигнальных и прочих специализированных процессоров

Ivaneo, kuroiryuu, размер типов в стандарте определяется именно в БАЙТАХ. При этом в стандарте не оговаривается, сколько бит в байте. Но на тех же "обычных" архитектурах байт содержит 8 бит. Но на сигнальных процессорах бывают 16-битные, 24-битные и 32-битные байты. Слышал даже про 17-битные и 23-битные байты.

Для справки. Бит - единица измерения КОЛИЧЕСТВА информации. Байт - единица АДРЕСАЦИИ памяти. Таким образом байт по своей сути является минимально адресуемым участком памяти.

Исходя из этого когда провайдеры указывают скорость в мегаБИТАх в секунду или скорость оцифровки (или как правильно называется термин) файла mp3 выражена в килоБИТАХ в секунду, то формально есть есть правильные величины. Размер памяти в машине или размер диска исчисляется в ячейках памяти (но не в количестве бит), потому как в указании этих характеристик неявно присутсвует понятие размера ячейки памяти. Поэтому модули памяти и жётские диски оцениваются в магаБАЙТах (а не мегаБИТах). При этом исторически сложилось, что "бытовое" понятие байта состоит из 8 бит, а потому чтобы не путаться, все остальные байты (т.е. байты прочих размеров) обычно называют словами unit
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru