Вы находитесь на странице: 1из 16

Представление данных

Я.А.Кириленко
2021
Данные — это представление информации
● Данные — поддающееся многократной интерпретации
представление информации в формализованном виде, пригодном
для передачи, связи, или обработки (ISO/IEC 2382:2015).

● Данные — формы представления информации, с которыми имеют


дело информационные системы и их пользователи (ISO/IEC
10746-2:1996).

● Any sequence of one (1) or more symbols given meaning by specific


act(s) of interpretation.
https://en.wikipedia.org/wiki/Data_(computing)
Синтаксис и семантика
● Одно и то же мы воспринимаем по-
разному
○ Помните об этом при отладке

● Только стандарты и спецификации


описывают правильный смысл
Синтаксис и семантика

A
А
Синтаксис и семантика
Синтаксис — вид (начертание, представление)

Семантика — смысл, трактование конкретно начертания

Изучаются с разных сторон. Например, “Формальные языки и


грамматики”, “Визуальное моделирование”. Самые основы –
“Дискретная математика”
Задача обмена данными
Как представить всё, что хотим передать?
Code pages
Проблемы и инженерные решения задачи кодирования



ASCII 7 bit
CP437 vs CP866 (IBM) А
● KOI8-R 65 0x41 01000001
+ Интересное решение проблемы 8-го бита: rUSSKIJ tEKST
- Символы не в алфавитом порядке
● CP1251 (Microsoft)
+ Другие кириллические языки
+ Типографика
- Я с 0xFF и Ё далеко от Е
UNICODE
● Стандарт кодирования символов, их слишком много
● Universal character set
○ Описание символа (смысла): CYRILLIC CAPITAL LETTER IOTIFIED BIG YUS Ѭ
● Unicode transformation format
○ Представление
● Кириллица U+0400 .. U+052F, U+2DE0 .. U+2DFF, U+A640 .. U+A69F
● Композитные символы, символы форматирования: 0̴͜͠
● Длина строки, сравнение строк
○ Normal form D, Normal form C
○ NFKD, NFKC
Визуальное представление. Гарнитуры.
● Monospace, моноширинный
○ Inconsolata 0O1lI
○ Input
○ Fira Mono 0O1lI & Fira Code 0O1lI
○ Consolas 0O1lI (MS)
○ ….
○ JetBrains 0O1lI(!)
○ ! Arial 0O1lI Обязательно настроить
терминал и среду
● Лигатуры: -> != !> != программирования

● Serif, c засечаками A
● Sans serif, без засечекA
Представление чисел
● Число – математический объект, важны его
свойства, а не вид
● Позиционная система (основание - ?)
● Целые, вещественные, комплексные
● Результат операции (флаги и регистры состояния)
Целые числа (со знаком)
Должно быть удобно выполнять требуемые операции (какие?)

● Прямой код
○ Как-то храним знак (битом, байтом)
● Обратный код: афифмометры и несколько ЭВМ (PDP-1 1960 г, CDC
6600 1963 г)
○ -5 в 4 битах: 1010
○ Проблема отрицательного нуля
● Дополнительный код
○ Стал основным способом
○ Сравнение и умножение требуют специальных операций
Длинные целые
● Нет ограничения архитектуры
● Для чего нужны?
● Идеи
○ Позиционная
○ По множителям
Интересные варианты
● Binary coded decimal (BCD), двоично-десятичные
○ Packed BCD
○ Нужны людям, но очень неестественные для архитектуры
○ Пока можно встретить даже в x86

● Арифметика с насыщением (Saturated Arithmetic)


○ Очень полезно для работы с сигналами
Вещественные
● Представимы ли вообще?
● Точность
● Операции (семантика)
Fixed point
Фиксированная точность

На самом деле, просто целое число

Обычные операции, но с коррекцией порядка

Всё очень просто, легко разберётесь


Floating point
● Single precision
● Double precision
● Представление в памяти

На практике будет подробно разобрано

● IEEE 754
● -ffast-math

Вам также может понравиться