🗊Презентация Простые типы данных языка С

Нажмите для полного просмотра!
Простые типы данных языка С, слайд №1Простые типы данных языка С, слайд №2Простые типы данных языка С, слайд №3Простые типы данных языка С, слайд №4Простые типы данных языка С, слайд №5Простые типы данных языка С, слайд №6Простые типы данных языка С, слайд №7Простые типы данных языка С, слайд №8Простые типы данных языка С, слайд №9Простые типы данных языка С, слайд №10Простые типы данных языка С, слайд №11Простые типы данных языка С, слайд №12Простые типы данных языка С, слайд №13Простые типы данных языка С, слайд №14Простые типы данных языка С, слайд №15Простые типы данных языка С, слайд №16Простые типы данных языка С, слайд №17Простые типы данных языка С, слайд №18Простые типы данных языка С, слайд №19Простые типы данных языка С, слайд №20Простые типы данных языка С, слайд №21Простые типы данных языка С, слайд №22Простые типы данных языка С, слайд №23Простые типы данных языка С, слайд №24Простые типы данных языка С, слайд №25Простые типы данных языка С, слайд №26Простые типы данных языка С, слайд №27Простые типы данных языка С, слайд №28Простые типы данных языка С, слайд №29Простые типы данных языка С, слайд №30Простые типы данных языка С, слайд №31Простые типы данных языка С, слайд №32

Содержание

Вы можете ознакомиться и скачать презентацию на тему Простые типы данных языка С. Доклад-сообщение содержит 32 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Простые типы данных языка С
лекция 3
Описание слайда:
Простые типы данных языка С лекция 3

Слайд 2





План лекции
Простые типы данных
Ограничения на простые типы данных
Машинное представление простых типов данных 
Общая структура программы на Си
Объявление переменных простых типов
Описание слайда:
План лекции Простые типы данных Ограничения на простые типы данных Машинное представление простых типов данных Общая структура программы на Си Объявление переменных простых типов

Слайд 3





Простые типы данных

Тип данных – это пара, состоящая из множества значений и набора операций над ними
Языки программирования позволяют строить одни типы данных из других типов данных
Простые типы данных – это типы данных, которые нельзя построить из других типов данных
Составные типы данных – это типы данных, которые строятся из других типов данных
Описание слайда:
Простые типы данных Тип данных – это пара, состоящая из множества значений и набора операций над ними Языки программирования позволяют строить одни типы данных из других типов данных Простые типы данных – это типы данных, которые нельзя построить из других типов данных Составные типы данных – это типы данных, которые строятся из других типов данных

Слайд 4





Простые типы данных Си

Символы, 8-битовые целые
Целые
Числа с плавающей точкой
Перечислимые типы
Описание слайда:
Простые типы данных Си Символы, 8-битовые целые Целые Числа с плавающей точкой Перечислимые типы

Слайд 5





Простые типы данных -- символы

С89
спецификатор-символьного-типа ::= 						[signed|unsigned] char
Символы и 8-битовые целые со знаком (signed) или без знака (unsigned)
CHAR_MIN, CHAR_MAX, UCHAR_MAX и др. в limits.h
Стандарт не определяет, есть ли знак у значений типа char
Описание слайда:
Простые типы данных -- символы С89 спецификатор-символьного-типа ::= [signed|unsigned] char Символы и 8-битовые целые со знаком (signed) или без знака (unsigned) CHAR_MIN, CHAR_MAX, UCHAR_MAX и др. в limits.h Стандарт не определяет, есть ли знак у значений типа char

Слайд 6





Простые типы данных -- целые

С89 
спецификатор-целого-типа ::=
		[signed|unsigned] [short|long] int
С99, С11 (поддержка есть в gcc 4.6)
спецификатор-целого-типа ::=
		[signed|unsigned] [short|long [long]] int
С89/C99/C11 не определяют, есть ли знак у int
Все известные компиляторы считают int = singed int
Нестандартные целые типы
__int16, __int32, __int64, __int128
Наличие и смысл зависят от компилятора
Описание слайда:
Простые типы данных -- целые С89 спецификатор-целого-типа ::= [signed|unsigned] [short|long] int С99, С11 (поддержка есть в gcc 4.6) спецификатор-целого-типа ::= [signed|unsigned] [short|long [long]] int С89/C99/C11 не определяют, есть ли знак у int Все известные компиляторы считают int = singed int Нестандартные целые типы __int16, __int32, __int64, __int128 Наличие и смысл зависят от компилятора

Слайд 7





Простые типы данных -- целые
Описание слайда:
Простые типы данных -- целые

Слайд 8





Простые типы данных – числа с плавающей точкой

С89/С99/С11
спецификатор-типа-с-плавающей ::=
					float | [long] double
sizeof(float) <= sizeof(double) <= sizeof(long double)
FLT_MIN, FLT_MAX, DBL_MIN, DBL_MAX, LDBL_MIN, LDBL_MAX и др. в файле float.h
Описание слайда:
Простые типы данных – числа с плавающей точкой С89/С99/С11 спецификатор-типа-с-плавающей ::= float | [long] double sizeof(float) <= sizeof(double) <= sizeof(long double) FLT_MIN, FLT_MAX, DBL_MIN, DBL_MAX, LDBL_MIN, LDBL_MAX и др. в файле float.h

Слайд 9





Простые типы данных – перечислимые типы

С89/С99/С11
enum-спецификатор ::= 
		'enum' [имя] '{' список-перечислителей '}'
| 	'enum' [имя] '{' список-перечислителей ',' '}'
| 	'enum' имя
список-перечислителей ::= перечислитель
| 	список-перечислителей ',' перечислитель
перечислитель ::= перечислимая-константа
| 	перечислимая-константа '=' 
				константное-выражение
перечислимая-константа ::= имя
константное-выражение на след. лекции
Тип, диапазон значений и размер в памяти такие же, как у int
Описание слайда:
Простые типы данных – перечислимые типы С89/С99/С11 enum-спецификатор ::= 'enum' [имя] '{' список-перечислителей '}' | 'enum' [имя] '{' список-перечислителей ',' '}' | 'enum' имя список-перечислителей ::= перечислитель | список-перечислителей ',' перечислитель перечислитель ::= перечислимая-константа | перечислимая-константа '=' константное-выражение перечислимая-константа ::= имя константное-выражение на след. лекции Тип, диапазон значений и размер в памяти такие же, как у int

Слайд 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 { my_false = 0, my_true = 0 }
my_false = my_true = 0
enum my_day_t { mon, tue, wed, thu, fri, sat, sun }
Описание слайда:
Простые типы данных – перечислимые типы Примеры 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 { my_false = 0, my_true = 0 } my_false = my_true = 0 enum my_day_t { mon, tue, wed, thu, fri, sat, sun }

Слайд 11





Машинное представление данных простых типов
Символы, 8-битовые целые
Целые
Числа с плавающей точкой
Описание слайда:
Машинное представление данных простых типов Символы, 8-битовые целые Целые Числа с плавающей точкой

Слайд 12





Машинное представление значений типа char, signed char, unsigned char
1 байт памяти, 
signed char целые числа от -128 до 127
unsigned char целые числа от 0 до 255
Программы на Си используют значения типов char, signed char, unsigned char для печати текстовых сообщений на экране, бумаге и т.п.
Соответствие значений и символов определяется кодировкой ОС
Описание слайда:
Машинное представление значений типа char, signed char, unsigned char 1 байт памяти, signed char целые числа от -128 до 127 unsigned char целые числа от 0 до 255 Программы на Си используют значения типов char, signed char, unsigned char для печати текстовых сообщений на экране, бумаге и т.п. Соответствие значений и символов определяется кодировкой ОС

Слайд 13





Машинное представление значений типа char, signed char, unsigned char
Кодировка CP866 (MS DOS)
Описание слайда:
Машинное представление значений типа char, signed char, unsigned char Кодировка CP866 (MS DOS)

Слайд 14





Машинное представление значений типа char, signed char, unsigned char
Linux (КОИ8)
Win 1251
Mac OS
Описание слайда:
Машинное представление значений типа char, signed char, unsigned char Linux (КОИ8) Win 1251 Mac OS

Слайд 15





Машинное представление беззнаковых (unsigned) целых
Двоичная запись числа Ч -- набор bn … b1 b0 такой, что Ч = b0∙20 + b1 ∙ 21 + … + bn ∙ 2n 
М.П. unsigned числа x – это двоичная запись числа x mod 28∙sizeof(T)
Описание слайда:
Машинное представление беззнаковых (unsigned) целых Двоичная запись числа Ч -- набор bn … b1 b0 такой, что Ч = b0∙20 + b1 ∙ 21 + … + bn ∙ 2n М.П. unsigned числа x – это двоичная запись числа x mod 28∙sizeof(T)

Слайд 16





Машинное представление целых со знаком (signed)
М.П. signed числа x
двоичная запись x mod 28∙sizeof(T), если x >= 0
дополнительный код |x| -- двоичная запись 28∙sizeof(T)  - |x| mod 28∙sizeof(T), если x < 0
Свойство дополнительного кода 
Вычисление на компьютере М.П.(х) + М.П.(-х) дает М.П.(0)
Описание слайда:
Машинное представление целых со знаком (signed) М.П. signed числа x двоичная запись x mod 28∙sizeof(T), если x >= 0 дополнительный код |x| -- двоичная запись 28∙sizeof(T) - |x| mod 28∙sizeof(T), если x < 0 Свойство дополнительного кода Вычисление на компьютере М.П.(х) + М.П.(-х) дает М.П.(0)

Слайд 17





Машинное представление целых со знаком (signed)
Построение дополнительного кода |x|
b[n] – двоичная запись |x|
d[n] – дополнительный код |x|
Алгоритм
for (i = 0; i < n; i = i+1) d[i] = 1-b[i];
for (i = 0; i < n && d[i] == 1; i = i+1) d[i] = 0;
if (i < n) d[i] = 1;
Описание слайда:
Машинное представление целых со знаком (signed) Построение дополнительного кода |x| b[n] – двоичная запись |x| d[n] – дополнительный код |x| Алгоритм for (i = 0; i < n; i = i+1) d[i] = 1-b[i]; for (i = 0; i < n && d[i] == 1; i = i+1) d[i] = 0; if (i < n) d[i] = 1;

Слайд 18





Машинное представление чисел с плавающей точкой
Числа вида S ∙ M ∙ 2P 
S – знак +1 или -1, 1 бит
M – мантисса, x/2mb от 0 до 1
mb – число битов в мантиссе
Intel, AMD, ARM -- 23 для float, 52 для double
x – целое от 0 до 2mb-1
P – порядок
Intel, AMD, ARM – 8 битов для float, 11 битов для double
float занимает 1+8+23 = 32 бита
double занимает 1+11+52 = 64 бита
long double обычно совпадает с double или эмулируется
Описание слайда:
Машинное представление чисел с плавающей точкой Числа вида S ∙ M ∙ 2P S – знак +1 или -1, 1 бит M – мантисса, x/2mb от 0 до 1 mb – число битов в мантиссе Intel, AMD, ARM -- 23 для float, 52 для double x – целое от 0 до 2mb-1 P – порядок Intel, AMD, ARM – 8 битов для float, 11 битов для double float занимает 1+8+23 = 32 бита double занимает 1+11+52 = 64 бита long double обычно совпадает с double или эмулируется

Слайд 19





Машинное представление значений типа double – стандарт IEEE 754
Описание слайда:
Машинное представление значений типа double – стандарт IEEE 754

Слайд 20





Машинное представление значений типа float – стандарт IEEE 754
Описание слайда:
Машинное представление значений типа float – стандарт IEEE 754

Слайд 21





Машинное представление данных простых типов -- разное
Адрес значения переменной простого типа B выровнен (кратен) sizeof(B)
Описание слайда:
Машинное представление данных простых типов -- разное Адрес значения переменной простого типа B выровнен (кратен) sizeof(B)

Слайд 22





Общая структура программы на Си
Для РБНФ <Х> обозначим <Х>* РБНФ <список Х>, заданную правилом
	<список Х> ::= <X> | <список Х> <X>
Описание слайда:
Общая структура программы на Си Для РБНФ <Х> обозначим <Х>* РБНФ <список Х>, заданную правилом <список Х> ::= <X> | <список Х> <X>

Слайд 23





Общая структура программы на Си
<единица-трансляции> ::=
	<внешнее-объявление>*
<внешнее-объявление> ::=
	<определение-функции> | <объявление>
<определение-функции> ::=
	[<спецификаторы-объявления>] <объявитель> 	[<список-объявлений>] <составная-инструкция>
<объявление> ::=
	<простое-объявление> | <составное-объявление>
Описание слайда:
Общая структура программы на Си <единица-трансляции> ::= <внешнее-объявление>* <внешнее-объявление> ::= <определение-функции> | <объявление> <определение-функции> ::= [<спецификаторы-объявления>] <объявитель> [<список-объявлений>] <составная-инструкция> <объявление> ::= <простое-объявление> | <составное-объявление>

Слайд 24





Общая структура программы на Си
<инструкция>::=
|	<помеченная-инструкция>
|	<инструкция-выражение>
|	<составная-инструкция>
|	<инструкция-выбора>
|	<циклическая-инструкция>
|	<инструкция-перехода>
<инструкция-выражение>::= [<выражение>] ';'
<составная-инструкция>::=
 	'{' [<объявление>*] [<инструкция>*] '}'
Описание слайда:
Общая структура программы на Си <инструкция>::= | <помеченная-инструкция> | <инструкция-выражение> | <составная-инструкция> | <инструкция-выбора> | <циклическая-инструкция> | <инструкция-перехода> <инструкция-выражение>::= [<выражение>] ';' <составная-инструкция>::= '{' [<объявление>*] [<инструкция>*] '}'

Слайд 25





Объявление и инициализация переменных простых типов
<простое-объявление> ::=
	<спецификаторы-объявления>
	[<простой-объявитель-инициализатор>*]
Объявления переменных встречаются либо вне самого внешнего блока { }, либо сразу же после {
Описание слайда:
Объявление и инициализация переменных простых типов <простое-объявление> ::= <спецификаторы-объявления> [<простой-объявитель-инициализатор>*] Объявления переменных встречаются либо вне самого внешнего блока { }, либо сразу же после {

Слайд 26





Объявление и инициализация переменных простых типов
<простой-объявитель-инициализатор> ::=
	<простой-объявитель>
|	<простой-объявитель> '=' <инициализатор>
<простой-объявитель>  ::= <идентификатор>
<инициализатор> ::= <выражение-присваивания>
Описание слайда:
Объявление и инициализация переменных простых типов <простой-объявитель-инициализатор> ::= <простой-объявитель> | <простой-объявитель> '=' <инициализатор> <простой-объявитель> ::= <идентификатор> <инициализатор> ::= <выражение-присваивания>

Слайд 27





Объявление и инициализация переменных простых типов
<спецификаторы-объявления> ::=
	(
			<спецификатор-класса-памяти>
		| 	<спецификатор-простого-типа>
		|	<квалификатор-типа>
	)*
Описание слайда:
Объявление и инициализация переменных простых типов <спецификаторы-объявления> ::= ( <спецификатор-класса-памяти> | <спецификатор-простого-типа> | <квалификатор-типа> )*

Слайд 28





Объявление и инициализация переменных простых типов
<спецификатор-класса-памяти> ::=
|	'auto'
|	'register'
|	'static'
|	'extern'
|	'typedef'
auto
На стеке (по умолчанию)
register
В регистре 
static
В статической памяти единицы компиляции 
extern
В статической памяти программы
typedef
Вне памяти, объявляемый идентификатор далее обозначает тип
Описание слайда:
Объявление и инициализация переменных простых типов <спецификатор-класса-памяти> ::= | 'auto' | 'register' | 'static' | 'extern' | 'typedef' auto На стеке (по умолчанию) register В регистре static В статической памяти единицы компиляции extern В статической памяти программы typedef Вне памяти, объявляемый идентификатор далее обозначает тип

Слайд 29





Объявление и инициализация переменных простых типов
<спецификатор-простого-типа> ::=
	'void' | 'char' | 'short' | 'int' | 'long' | 'float'
|	'double' | 'signed' | 'unsigned'
| 	<спецификатор-enum> -- было
| 	<typedef-имя>
<typedef-имя> ::= <идентификатор>
<квалификатор-типа> ::= 'const' | 'volatile'
const
Неизменяемое значение
volatile
Значение может асинхронно изменяться – например, в многопоточной программе
Описание слайда:
Объявление и инициализация переменных простых типов <спецификатор-простого-типа> ::= 'void' | 'char' | 'short' | 'int' | 'long' | 'float' | 'double' | 'signed' | 'unsigned' | <спецификатор-enum> -- было | <typedef-имя> <typedef-имя> ::= <идентификатор> <квалификатор-типа> ::= 'const' | 'volatile' const Неизменяемое значение volatile Значение может асинхронно изменяться – например, в многопоточной программе

Слайд 30





Примеры объявлений переменных простых типов
int x;
auto int x; // то же, что выше
const int x; 	// как задать начальное 				// значение?!
const double x = 1.234567;
float x = 0, y = x+1;
static int x = 5;
extern unsigned long long global_uuid;
Описание слайда:
Примеры объявлений переменных простых типов int x; auto int x; // то же, что выше const int x; // как задать начальное // значение?! const double x = 1.234567; float x = 0, y = x+1; static int x = 5; extern unsigned long long global_uuid;

Слайд 31





Примеры объявлений переменных простых типов
typedef int my_int; // my_int – синоним int
my_int x = 0, y = x+1;
Описание слайда:
Примеры объявлений переменных простых типов typedef int my_int; // my_int – синоним int my_int x = 0, y = x+1;

Слайд 32





Заключение
Простые типы данных
Ограничения на простые типы данных
Машинное представление простых типов данных 
Представление целых и вещественных чисел
Объявление и инициализация переменных простых типов
Описание слайда:
Заключение Простые типы данных Ограничения на простые типы данных Машинное представление простых типов данных Представление целых и вещественных чисел Объявление и инициализация переменных простых типов



Похожие презентации
Mypresentation.ru
Загрузить презентацию