Пиши Дома Нужные Работы

Обратная связь

Идентификация оборудования и программного окружения

Лабораторная работа № 2

Представление чисел и определения типа оборудования

Цель работы. Идентификация оборудования и программного окружения ЭВМ, изучение представления вещественных чисел в ЭВМ.

Методические указания.

Представление беззнаковых целых чисел

Для представления беззнаковых целых чисел необходимо перевести из десятичной системы исчисления в двоичную. Например, число можно представить в виде суперпозиции по степеням двойки:

,

где единицы в двоичном представлении числа стоят на позиции соответствующих степеней двоек. Для простоты рассмотрим беззнаковый однобайтовый тип данных (тип unsigned char в языках С/С++). Для записи числа в такой тип данных необходимо дополнить двоичное представление до 8 знаков и записать полученные значения в соответствующие биты:

Рисунок 1.

Представление знаковых целых чисел

В случае знаковых типов данных старший бит отвечает за знак числа (1 – отрицательное число, 0 – положительное число). Основной проблемой является представление отрицательных чисел. Для такого представления существует следующий алгоритм:

1. нахождение двоичного представления модуля числа,

2. нахождение двоичного дополнения числа,

3. прибавление единицы.

Рассмотрим алгоритм на примере. Представим число в знаковом однобайтном типе данных (тип char в языках С/С++):

1. Двоичное представление ,

2. Для нахождения двоичного представления инвертируем все биты числа ,

3. Прибавляем единицу .

После этого записываем полученные значения в соответствующие биты:

 

Рисунок 2.

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



Основной интерес в вычислениях представляют вещественные типы данных и погрешности округления, связанные с ними. По стандарту IEEE 754 вещественное число представляется в виде:

Рисунок 3.

Где – однобитовый знак числа, – нормализованная мантисса, – показатель степени двойки. В случае типа float под мантиссу выделяется 23 бита, экспоненту 8 бит, в случае типа double 52 бита, экспоненту 11 бит.

Приведём пример представления вещественного числа в типе float. Основной задачей является запись числа в виде . Число можно записать в виде , в данном случае мантисса имеет вид нормализация мантиссы позволяет отбросить единицу и записывать только дробную часть. Таким образом . Далее записываем показатель степени двойки. При этом нужно учитывать, что эта степень может быть как отрицательной так и положительной. Для этого показатель степени имеет вид:

,

где – количество бит на показатель степени двойки. В результате число представимо в виде:

Рисунок 4.

В завершении описания представления вещественных чисел нужно отметить, что для стандартных типов данных (float и double) имеют место следующие значения:

Таблица 1.

Тип Минимальный порядок* Максимальный порядок Число значащих знаков
float – 45
double – 323

(*) Стоит отметить, что мантисса может быть ненормализованной, что и приводит к таким значениям минимального порядка.

Идентификация оборудования и программного окружения

Средствами операционной системы Windows можно узнать достаточно много информации об оборудовании, памяти (функция GlobalMemoryStatus), жёстких дисках (функция GetDiskFreeSpace), сети и мониторе (функция GetSystemMetrics при различных параметрах), программном окружении (функции GetComputerName и GetUserName) и о многом другом. Подробное описание функций и примеры их использования можно найти в справочной системе MSDN.

Для определения таких параметров процессора, как фирма производитель, наличие расширений, количества и параметров кэшей команд и данных, TLB и других параметров в случае архитектур x86 используется инструкция процессора cpuid, которая имеет интерфейс на языке С/С++ __cpuid. Так для определения идентификатора процессора имеет место следующий код:

 

 

#include <intrin.h> // подключение описания функции __cpuid

int CPUInfo[4];

char CPUString[32];

__cpuid(CPUInfo, 0);

memset(CPUString, 0, sizeof(CPUString));

*((int*)CPUString) = CPUInfo[1];

*((int*)(CPUString+4)) = CPUInfo[3];

*((int*)(CPUString+8)) = CPUInfo[2];

printf(" CPU vendor: %s\n",CPUString);

Первый параметр функции __cpuid – 4-х элементный целочисленный массив, который соответствует регистрам eax, ebx, ecx, edx после выполнения инструкции. Второй параметр функции – номер функции инструкции. Подробная информация о номерах функций инструкции cpuid и содержимом регистров приведена в документах [1,2] для процессоров Intel и AMD. Так например с помощью функций 0x80000002, 0x80000003, 0x80000004 можно узнать полное название процессора.

Задание.

1. В соответствии с вариантом задания записать представление целого числа в типе char и вещественного числа в типе float.

2. С помощью функций WinAPI определить информацию об оперативной памяти.

3. С помощью функций WinAPI определить информацию о памяти на одном из жёстких дисков.

4. С помощью инструкции cpuid определить название процессора.

Варианты.

1. Целое число –12, вещественное число 12.5.

2. Целое число –23, вещественное число 12.125.

3. Целое число –56, вещественное число 12.25.

4. Целое число –78, вещественное число 12.75.

5. Целое число –89, вещественное число 12.625.

6. Целое число –90, вещественное число 24.5.

7. Целое число –21, вещественное число 24.125.

8. Целое число –45, вещественное число 24.25.

9. Целое число –78, вещественное число 24.75.

10. Целое число –86, вещественное число 24.625.

 






ТОП 5 статей:
Экономическая сущность инвестиций - Экономическая сущность инвестиций – долгосрочные вложения экономических ресурсов сроком более 1 года для получения прибыли путем...
Тема: Федеральный закон от 26.07.2006 N 135-ФЗ - На основании изучения ФЗ № 135, дайте максимально короткое определение следующих понятий с указанием статей и пунктов закона...
Сущность, функции и виды управления в телекоммуникациях - Цели достигаются с помощью различных принципов, функций и методов социально-экономического менеджмента...
Схема построения базисных индексов - Индекс (лат. INDEX – указатель, показатель) - относительная величина, показывающая, во сколько раз уровень изучаемого явления...
Тема 11. Международное космическое право - Правовой режим космического пространства и небесных тел. Принципы деятельности государств по исследованию...



©2015- 2024 pdnr.ru Все права принадлежат авторам размещенных материалов.