Содержание
- 2. Машинное представление данных Различные структуры данных имеют разное машинное представление, особенно базовые (простые) структуры, из которых
- 3. Размер памяти, необходимый для данных того или иного базового типа, может быть разным для разных процессоров
- 4. Машинное представление байта В байте со знаком, для представления целого числа можно использовать не 8, а
- 5. Пример: для числа -33 в формате integer: 1000000000100001 - прямой код 0111111111011110 - обратный код +______________1
- 6. Тот же принцип дополнительного кода для отрицательных чисел можно использовать и в компьютерном представлении шестнадцатеричных (десятичных)
- 7. Для отображения шестнадцатеричных чисел (в частности, в браузерах FAR, Total Commander и других используются восемь двоичных
- 8. Машинное представление совокупности байт Машинное представление данных В процессорах Intel слова хранятся в памяти начиная с
- 9. Целые числовые типы данных int, signed [int], short [int] – переменная хранится как слово (2 байта)
- 10. Логические типы данных bool – переменная хранится как байт без знака char, signed char – переменная
- 11. Кодировка символьных типов данных (ASCII CP 866 - MS DOS) Символы с кодами 0 - 127
- 12. И+ПРГ Кодировка символьных типов данных (ASCII CP 866 - MS DOS) Символы с кодами 128 -
- 13. И+ПРГ Кодировка символьных типов данных
- 14. Машинное представление данных Формат машинного представления вещественных чисел Система вещественных чисел, применяемая при ручных вычислениях, предполагается
- 15. Машинное представление данных Формат машинного представления вещественных чисел Пример: кодирование числа 178,625 в соответствии с IEEE-754.
- 16. Вещественные числовые типы данных float double long double i – позиция неявной двоичной точки i –
- 17. Вещественные числовые типы данных Алгоритм формирования машинного представления вещественного числа в памяти ЭВМ 1) Число представляется
- 19. Скачать презентацию
Машинное представление данных
Различные структуры данных имеют разное машинное представление,
особенно базовые
Машинное представление данных
Различные структуры данных имеют разное машинное представление,
особенно базовые
из которых строятся более сложные конструкции данных.
И+ПРГ
Размер памяти, необходимый для данных того или иного базового типа, может
Размер памяти, необходимый для данных того или иного базового типа, может
Типовые размеры памяти для простых типов данных
И+ПРГ
Процессор Intel x86 – ЯП MS VS С/С++
Процессор Intel x64 – ЯП MinGW С++ в Qt 5
Исследовать размеры оперативной памяти для базовых типов данных С++ в Qt 5
и нарисовать схему
Машинное представление байта
В байте со знаком, для представления целого числа можно
Машинное представление байта
В байте со знаком, для представления целого числа можно
Операции с таким представлением целых чисел наглядны, но не экономичны. Для оперирования со знаком числа требуется выполнять специальные алгоритмы операции, а это затраты машинного времени.
Целые и вещественные числа представляются в памяти компьютера по-разному.
Машинное представление данных
И+ПРГ
Пример: для числа -33 в формате integer:
1000000000100001 - прямой код
Пример: для числа -33 в формате integer:
1000000000100001 - прямой код
0111111111011110 - обратный код
+______________1
1111111111011111 - дополнительный код
Более экономным является представление отрицательных целых чисел в дополнительном коде, который формируется следующим образом:
⬥ модуль отрицательного числа записать в прямом коде, в неиспользуемые старшие биты записать нули;
⬥ сформировать обратный код числа, для этого нуль заменить единицей, а единицу заменить нулем;
⬥ к обратному коду числа прибавить единицу;
⬥ знаковый (старший) разряд числа сделать равным 1.
Для положительных чисел прямой, обратный и дополнительный коды одинаковы, при этом знаковый (старший) разряд равен 0. Аналогично представляются целые числа других типов.
Машинное представление данных
И+ПРГ
Машинное представление байта
Тот же принцип дополнительного кода для отрицательных чисел можно использовать и
Тот же принцип дополнительного кода для отрицательных чисел можно использовать и
Примеры:
Десятичные числа – при использовании четырёхзначных чисел -0081 заменяется на 9919 (9919+0081=0000, пятый разряд отбрасывается),
16-ричные числа в дополнительном коде – 7F3C - прямой код
80С3 - обратный код
+1
80С4 – дополнительный код
Дополнительный код позволяет свести операцию вычитания к сложению положительного числа в прямом коде и отрицательного в обратном.
Пример: Сложим +1 и -1:
00000001 - в прямом двоичном коде
11111111 - в дополнительном коде
00000000 - перенос разряда дает в результате +1-1=0
(левый разряд переполнения – отбрасывается)
Машинное представление данных
И+ПРГ
Для отображения шестнадцатеричных чисел (в частности, в браузерах FAR, Total Commander
Для отображения шестнадцатеричных чисел (в частности, в браузерах FAR, Total Commander
Четырьмя разрядами двоичной системы счисления представляется одна цифра шестнадцатеричной системы счисления (F16 -> 11112).
В шестнадцатеричной системе счисления число представляется в виде суммы степеней числа 16. Для изображения числа используется шестнадцать цифр: десять обычных десятичных цифр {0,1,2,3,4,5,6,7,8,9} и шесть латинских заглавных букв {A,B,C,D,E,F}.
Таким образом содержимое байта отображают двузначным числом в шестнадцатеричной системе счисления (младший разряд – справа).
Например, 0110 11012 = 6D16
1010 00102 = A216
Машинное представление данных
И+ПРГ
Машинное представление совокупности байт
Машинное представление данных
В процессорах Intel слова хранятся в
Машинное представление совокупности байт
Машинное представление данных
В процессорах Intel слова хранятся в
В 16-разрядных процессорах слово состоит из 2-х байт. В 32- разрядных процессорах слово состоит из 4-х байт. Двойное слово, как и следует из названия, содержит ровно в два раза больше байт, чем просто слово. Как же называют набор из двух байт для 32-разрядного процессора? На больших ЭВМ - это полуслово. А на процессоре Intel 80х86 (младшие модели этих процессоров были 16-разрядными, а начиная с 80386 стали 32-разрядными) фирма Intel сохранила термино-логию 16-разрядных моделей. В официальной документации на процессоры Intel словом, или коротким словом, называется набор из 2 байт, то есть 16 разрядов. Это верно даже для Pentium. Набор из 4 байт, или 32 разряда, называется двойным словом, или длинным словом. Это сделано для единства терминологии, независимо от конкретной модели ПЭВМ.
Младший байт Старший байт
Короткое слово
Длинное (двойное) слово
И+ПРГ
Целые числовые типы данных
int, signed [int], short [int] – переменная хранится
Целые числовые типы данных
int, signed [int], short [int] – переменная хранится
unsigned [int], unsigned short [int] – переменная хранится как слово (2 байта) без знака
long [int], signed long [int] – переменная хранится как двойное слово (4 байта) со знаком
. . .
unsigned long [int] – переменная хранится как двойное слово (4 байта) без знака
. . .
И+ПРГ
Процессор Intel x86 -- ЯП MS VS С/С++
Процессор Intel x64 -- ЯП MinGW С++ в Qt 5
Исследовать размеры памяти для целых типов данных С++ в Qt 5
и нарисовать схему
Логические типы данных
bool – переменная хранится как байт без знака
char,
Логические типы данных
bool – переменная хранится как байт без знака
char,
unsigned char – переменная хранится как байт без знака
wchar_t – переменная хранится как слово (2 байта) без знака
Символьные типы данных
enum – переменная хранится как тип int (2 байта) без знака
Перечисляемый тип данных
Указатели
Тип указателя – это адрес ячейки памяти. 4 байта.
И+ПРГ
Исследовать размеры оперативной памяти для базовых типов данных С++ в Qt 5
и нарисовать схему
Процессор Intel x86 – ЯП MS VS С/С++
Процессор Intel x64 – ЯП MinGW С++ в Qt 5
Кодировка символьных типов данных
(ASCII CP 866 - MS DOS)
Символы с кодами
Кодировка символьных типов данных
(ASCII CP 866 - MS DOS)
Символы с кодами
И+ПРГ
И+ПРГ
Кодировка символьных типов данных
(ASCII CP 866 - MS DOS)
Символы с кодами
И+ПРГ
Кодировка символьных типов данных
(ASCII CP 866 - MS DOS)
Символы с кодами
И+ПРГ
Кодировка символьных типов данных
И+ПРГ
Кодировка символьных типов данных
Машинное представление данных
Формат машинного представления вещественных чисел
Система вещественных чисел, применяемая при
Машинное представление данных
Формат машинного представления вещественных чисел
Система вещественных чисел, применяемая при
Реализовать такую систему в технических устройствах невозможно. Во всех компьютерах размеры ячеек памяти фиксированы, что ограничивает систему представимых чисел. Ограничения касаются как диапазона, так и точности представления чисел, т.е. система машинных чисел оказывается конечной и и дискретной, образуя подмножество системы вещественных чисел.
Отсюда, в отличии от порядковых типов (все целые, символьный, логический), значения которых всегда сопоставляются с рядом целых чисел и, следовательно, представляются в памяти машины абсолютно точно, значение вещественных типов определяет число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа.
Для вещественных чисел по стандарту ANSI/IEEE 754-1985 (IEEE Standard for Binary Floating-Point Arithmetic’s) используется нормализованное представление со смещенным порядком. То есть число приводится к виду:
A = ±M · 2±P, ½ <= M < 1,
где M – мантисса, P – порядок. (Нормализованная запись отличного от нуля действительного числа – это запись вида a = m*Qp, где p – целое число (положительное, отрицательное или ноль), а m – правильная Q-ричная дробь, у которой первая цифра после запятой не равна нулю, то есть 1/Q <= m <1). Так как в результате старший разряд целой части двоичного числа всегда равен единице, его обычно в памяти не хранят («скрытый бит» или «скрытая единица»). Порядок хранится в смещенном коде («модифицированный порядок» или «характеристика»): P' = P+2n-1, где n – число разрядов машинного представления порядка. Это делается для того, чтобы характеристика всегда была положительной. Для представления нуля обнуляются все биты мантиссы и порядка.
Объясним ИНАЧЕ: Старший разряд двоичного представления вещественного числа всегда кодирует знак числа. Остальная часть разбивается на две части: мантиссу и экспоненту. Вещественное число имеет вид:
A = ±S · M · 2E,
где S - знаковый бит числа, E - экспонента, M - мантисса. Если 1/2≤M<1, то такое число называется нормализованным. При хранении нормализованных чисел сопроцессор отбрасывает целую часть мантиссы (она всегда 1), сохраняя лишь дробную часть. Экспонента кодируется со сдвигом на половину разрядной сетки, таким образом, удается избежать вопроса о кодировании знака экспоненты. Т.е. при 8-битной разрядности экспоненты код 0 соответствует числу -127, 1 - числу -126, ..., 255 числу +126 (экспонента вычисляется как код 127).
И+ПРГ
Машинное представление данных
Формат машинного представления вещественных чисел
Пример: кодирование числа 178,625 в
Машинное представление данных
Формат машинного представления вещественных чисел
Пример: кодирование числа 178,625 в
178,62510 = 128 + 32 + 16 + 2 + 0,5 + 0,125 =
1·27 + 0·26 + 1·25 + 1·24 + 0·23 + 0·22 + 1·21 + 0·20 + + 1·2-1 + 0·2-2 + 1·2-3 = 10110010,1012
Его нужно нормализовать (привести в экспоненциальный вид):
1,78625E102 = 1,0110010101E2111
В формате вещественного числа одинарной точности оно будет представлено так:
Стандарт IEEE-754 определяет три основных способа кодирования (типа) вещественных чисел:
И+ПРГ
Вещественные числовые типы данных
float
double
long double
i – позиция неявной двоичной точки
i
Вещественные числовые типы данных
float
double
long double
i – позиция неявной двоичной точки
i
1 –целочисленный бит мантиссы
(явный в long и неявный во float и double)
И+ПРГ
Процессор Intel x86 – ЯП MS VS С/С++
Процессор Intel x64 – ЯП MinGW С++ в Qt 5
Исследовать размеры памяти для вещественных типов данных С++ в Qt 5
и нарисовать схему
Вещественные числовые типы данных
Алгоритм формирования машинного представления вещественного числа в памяти
Вещественные числовые типы данных
Алгоритм формирования машинного представления вещественного числа в памяти
1) Число представляется в двоичном коде.
2) Двоичное число нормализуется. При этом для чисел, больших единицы, плавающая точка переносится влево, определяя положительный порядок. Для чисел, меньших единицы, точка переносится вправо, определяя отрицательный порядок.
3) Затем с учетом типа вещественного числа определяется характеристика.
4) В отведенное поле памяти (в соответствии с типом числа) записываются мантисса, характеристика и знак числа. При этом :
(а) для чисел типа float, double, long double характеристика хранится в старших байтах памяти;
(б) знак числа находится всегда в старшем бите старшего байта;
(в) мантисса всегда хранится в прямом коде;
(г) целая часть мантиссы (у нормализованного числа всегда равна 1) для чисел типа float, double не хранится (является скрытой).
В числах типа long double все разряды мантиссы хранятся в памяти ЭВМ.
И+ПРГ