Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

polevoy_cpp_2012_spring_lecture_12

.pdf
Скачиваний:
12
Добавлен:
20.04.2015
Размер:
203 Кб
Скачать
☆

Объектно-ориентированное программирование

с использованием C++

Полевой Дмитрий Валерьевич к.т.н., доцент КиК

e-mail: oop.misis@gmail.com

Машинное слово

•платформозависимая хар-ка

•имеет неоднозначную интерпретацию (исторически)

•байт – единица адресации

•слово – несколько байт (обычно 2n)

28.04.2012

cppNewb.ru

2

Длинна машинного слова

•процессор

–разрядность данных

–максимальное значение

беззнакового целого типа

•память

–разрядность адресуемых данных (шина данных)

–объем адресуемой напрямую памяти

28.04.2012

cppNewb.ru

3

Порядок байтов

•определяет порядок записи байтов для многобайтовых чисел

28.04.2012

cppNewb.ru

4

big-endian

•от старшего к младшему

•является стандартным для протоколов

TCP/IP (сетевой, network order)

пример:

0x00000b0f

0x00

0x00

0x0b

0x0f

 

 

 

 

28.04.2012

cppNewb.ru

5

little-endian

•от младшего к старшему

•является стандартным для x86

пример:

0x00000b0f

0x0f

0x0b

0x00

0x00

 

 

 

 

28.04.2012

cppNewb.ru

6

Когда порядок байтов важен

•передача данных через файлы

•передача данных через сеть

•низкоуровневые алгоритмы

манипуляции данными (уровня байт и бит)

28.04.2012

cppNewb.ru

7

Целые числа

•для знаковых за знак отвечает разряд старшего байта

28.04.2012

cppNewb.ru

8

Вещественные числа

•физическое представление может зависеть от порядка байт

•на x86 используются форматы

IEEE 754

–знак числа в старших байтах

–порядок числа в старших байтах

28.04.2012

cppNewb.ru

9

Плюсы и минусы

+ little-endian

как uint32_t (4 байта) – 0x00000022 как uint16_t (2 байта) – 0x0022

как uint8_t (1 байт) – 0x22

- little-endian

отладочное/печатное значение не совпадает с размещением в памяти

28.04.2012

cppNewb.ru

10