Академический Документы
Профессиональный Документы
Культура Документы
SE2021 - 03 - Представление данных
SE2021 - 03 - Представление данных
Я.А.Кириленко
2021
Данные — это представление информации
● Данные — поддающееся многократной интерпретации
представление информации в формализованном виде, пригодном
для передачи, связи, или обработки (ISO/IEC 2382:2015).
A
А
Синтаксис и семантика
Синтаксис — вид (начертание, представление)
●
●
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
● IEEE 754
● -ffast-math