Слайды и текст доклада
Pic.1
Простые типы данных языка С лекция 3
Pic.2
План лекции Простые типы данных Ограничения на простые типы данных Машинное представление простых типов данных Общая структура программы на Си Объявление переменных простых типов
Pic.3
Простые типы данных Тип данных – это пара, состоящая из множества значений и набора операций над ними Языки программирования позволяют строить одни типы данных из других типов данных Простые типы …
Pic.4
Простые типы данных Си Символы, 8-битовые целые Целые Числа с плавающей точкой Перечислимые типы
Pic.5
Простые типы данных -- символы С89 спецификатор-символьного-типа ::= [signed|unsigned] char Символы и 8-битовые целые со знаком (signed) или без знака (unsigned) CHAR_MIN, CHAR_MAX, UCHAR_MAX и др. в …
Pic.6
Простые типы данных -- целые С89 спецификатор-целого-типа ::= [signed|unsigned] [short|long] int С99, С11 (поддержка есть в gcc 4. 6) спецификатор-целого-типа ::= [signed|unsigned] [short|long …
Pic.7
Простые типы данных -- целые
Pic.8
Простые типы данных – числа с плавающей точкой С89/С99/С11 спецификатор-типа-с-плавающей ::= float | [long] double sizeof(float) <= sizeof(double) <= sizeof(long double) FLT_MIN, FLT_MAX, …
Pic.9
Простые типы данных – перечислимые типы С89/С99/С11 enum-спецификатор ::= 'enum' [имя] '{' список-перечислителей '}' | 'enum' [имя] '{' …
Pic.10
Простые типы данных – перечислимые типы Примеры enum my_boolean_t { my_false = 0, my_true = 1 } enum my_boolean_t { my_false, my_true } my_false = 0 my_true = my_false+1 = 1 enum my_boolean_t { …
Pic.11
Машинное представление данных простых типов Символы, 8-битовые целые Целые Числа с плавающей точкой
Pic.12
Машинное представление значений типа char, signed char, unsigned char 1 байт памяти, signed char целые числа от -128 до 127 unsigned char целые числа от 0 до 255 Программы на Си используют значения …
Pic.13
Машинное представление значений типа char, signed char, unsigned char Кодировка CP866 (MS DOS)
Pic.14
Машинное представление значений типа char, signed char, unsigned char Linux (КОИ8) Win 1251 Mac OS
Pic.15
Машинное представление беззнаковых (unsigned) целых Двоичная запись числа Ч -- набор bn … b1 b0 такой, что Ч = b0∙20 + b1 ∙ 21 + … + bn ∙ 2n М. П. unsigned числа x – это двоичная запись числа x mod …
Pic.16
Машинное представление целых со знаком (signed) М. П. signed числа x двоичная запись x mod 28∙sizeof(T), если x >= 0 дополнительный код |x| -- двоичная запись 28∙sizeof(T) - |x| mod 28∙sizeof(T), …
Pic.17
Машинное представление целых со знаком (signed) Построение дополнительного кода |x| b[n] – двоичная запись |x| d[n] – дополнительный код |x| Алгоритм for (i = 0; i < n; i = i+1) d[i] = 1-b[i]; for …
Pic.18
Машинное представление чисел с плавающей точкой Числа вида S ∙ M ∙ 2P S – знак +1 или -1, 1 бит M – мантисса, x/2mb от 0 до 1 mb – число битов в мантиссе Intel, AMD, ARM -- 23 для float, 52 для …
Pic.19
Машинное представление значений типа double – стандарт IEEE 754
Pic.20
Машинное представление значений типа float – стандарт IEEE 754
Pic.21
Машинное представление данных простых типов -- разное Адрес значения переменной простого типа B выровнен (кратен) sizeof(B)
Pic.22
Общая структура программы на Си Для РБНФ <Х> обозначим <Х>* РБНФ <список Х>, заданную правилом <список Х> ::= <X> | <список Х> <X>
Pic.23
Общая структура программы на Си <единица-трансляции> ::= <внешнее-объявление>* <внешнее-объявление> ::= <определение-функции> | <объявление> <определение-функции> …
Pic.24
Общая структура программы на Си <инструкция>::= | <помеченная-инструкция> | <инструкция-выражение> | <составная-инструкция> | <инструкция-выбора> | …
Pic.25
Объявление и инициализация переменных простых типов <простое-объявление> ::= <спецификаторы-объявления> [<простой-объявитель-инициализатор>*] Объявления переменных встречаются либо …
Pic.26
Объявление и инициализация переменных простых типов <простой-объявитель-инициализатор> ::= <простой-объявитель> | <простой-объявитель> '=' <инициализатор> …
Pic.27
Объявление и инициализация переменных простых типов <спецификаторы-объявления> ::= ( <спецификатор-класса-памяти> | <спецификатор-простого-типа> | <квалификатор-типа> )*
Pic.28
Объявление и инициализация переменных простых типов <спецификатор-класса-памяти> ::= | 'auto' | 'register' | 'static' | 'extern' | 'typedef' …
Pic.29
Объявление и инициализация переменных простых типов <спецификатор-простого-типа> ::= 'void' | 'char' | 'short' | 'int' | 'long' | …
Pic.30
Примеры объявлений переменных простых типов int x; auto int x; // то же, что выше const int x; // как задать начальное // значение?! const double x = 1. 234567; float x = 0, y = x+1; static int x = …
Pic.31
Примеры объявлений переменных простых типов typedef int my_int; // my_int – синоним int my_int x = 0, y = x+1;
Pic.32
Заключение Простые типы данных Ограничения на простые типы данных Машинное представление простых типов данных Представление целых и вещественных чисел Объявление и инициализация переменных простых …
Скачать презентацию
Если вам понравился сайт и размещенные на нем материалы, пожалуйста, не забывайте поделиться этой страничкой в социальных сетях и с друзьями! Спасибо!