Память в компьютере организована из ячеек каждая из которых имеет свой
Главная задача компьютерной системы – выполнять программы. Программы вместе с данными, к которым они имеют доступ , в процессе выполнения должны (по крайней мере частично) находиться в оперативной памяти . Операционной системе приходится решать задачу распределения памяти между пользовательскими процессами и компонентами ОС. Эта деятельность называется управлением памятью. Таким образом, память ( storage , memory ) является важнейшим ресурсом, требующим тщательного управления. В недавнем прошлом память была самым дорогим ресурсом.
Часть ОС, которая отвечает за управление памятью , называется менеджером памяти.
Физическая организация памяти компьютера
Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную (главную, оперативную , физическую ) и вторичную (внешнюю) память.
Основная память представляет собой упорядоченный массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер). Процессор извлекает команду из основной памяти , декодирует и выполняет ее. Для выполнения команды могут потребоваться обращения еще к нескольким ячейкам основной памяти . Обычно основная память изготавливается с применением полупроводниковых технологий и теряет свое содержимое при отключении питания.
Вторичную память (это главным образом диски) также можно рассматривать как одномерное линейное адресное пространство , состоящее из последовательности байтов. В отличие от оперативной памяти , она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширения основной памяти .
Эту схему можно дополнить еще несколькими промежуточными уровнями, как показано на рис. 8.1. Разновидности памяти могут быть объединены в иерархию по убыванию времени доступа, возрастанию цены и увеличению емкости.
Многоуровневую схему используют следующим образом. Информация, которая находится в памяти верхнего уровня, обычно хранится также на уровнях с большими номерами. Если процессор не обнаруживает нужную информацию на i-м уровне, он начинает искать ее на следующих уровнях. Когда нужная информация найдена, она переносится в более быстрые уровни.
Локальность
Оказывается, при таком способе организации по мере снижения скорости доступа к уровню памяти снижается также и частота обращений к нему.
Ключевую роль здесь играет свойство реальных программ, в течение ограниченного отрезка времени способных работать с небольшим набором адресов памяти. Это эмпирически наблюдаемое свойство известно как принцип локальности или локализации обращений.
Свойство локальности (соседние в пространстве и времени объекты характеризуются похожими свойствами) присуще не только функционированию ОС, но и природе вообще. В случае ОС свойство локальности объяснимо, если учесть, как пишутся программы и как хранятся данные, то есть обычно в течение какого-то отрезка времени ограниченный фрагмент кода работает с ограниченным набором данных. Эту часть кода и данных удается разместить в памяти с быстрым доступом. В результате реальное время доступа к памяти определяется временем доступа к верхним уровням, что и обусловливает эффективность использования иерархической схемы. Надо сказать, что описываемая организация вычислительной системы во многом имитирует деятельность человеческого мозга при переработке информации. Действительно, решая конкретную проблему, человек работает с небольшим объемом информации, храня не относящиеся к делу сведения в своей памяти или во внешней памяти (например, в книгах).
Кэш процессора обычно является частью аппаратуры, поэтому менеджер памяти ОС занимается распределением информации главным образом в основной и внешней памяти компьютера. В некоторых схемах потоки между оперативной и внешней памятью регулируются программистом (см. например, далее оверлейные структуры ), однако это связано с затратами времени программиста, так что подобную деятельность стараются возложить на ОС.
Адреса в основной памяти , характеризующие реальное расположение данных в физической памяти , называются физическими адресами. Набор физических адресов, с которым работает программа, называют физическим адресным пространством .
Логическая память
Аппаратная организация памяти в виде линейного набора ячеек не соответствует представлениям программиста о том, как организовано хранение программ и данных. Большинство программ представляет собой набор модулей, созданных независимо друг от друга. Иногда все модули, входящие в состав процесса, располагаются в памяти один за другим, образуя линейное пространство адресов. Однако чаще модули помещаются в разные области памяти и используются по-разному.
Схема управления памятью, поддерживающая этот взгляд пользователя на то, как хранятся программы и данные, называется сегментацией. Сегмент – область памяти определенного назначения, внутри которой поддерживается линейная адресация. Сегменты содержат процедуры, массивы, стек или скалярные величины , но обычно не содержат информацию смешанного типа.
По-видимому, вначале сегменты памяти появились в связи с необходимостью обобществления процессами фрагментов программного кода (текстовый редактор, тригонометрические библиотеки и т. д.), без чего каждый процесс должен был хранить в своем адресном пространстве дублирующую информацию. Эти отдельные участки памяти, хранящие информацию, которую система отображает в память нескольких процессов, получили название сегментов . Память, таким образом, перестала быть линейной и превратилась в двумерную. Адрес состоит из двух компонентов: номер сегмента , смещение внутри сегмента . Далее оказалось удобным размещать в разных сегментах различные компоненты процесса (код программы, данные, стек и т. д.). Попутно выяснилось, что можно контролировать характер работы с конкретным сегментом , приписав ему атрибуты, например права доступа или типы операций, которые разрешается производить с данными, хранящимися в сегменте .
Рис. 8.2. Расположение сегментов процессов в памяти компьютера
Некоторые сегменты , описывающие адресное пространство процесса, показаны на рис. 8.2. Более подробная информация о типах сегментов имеется в лекции 10.
Большинство современных ОС поддерживают сегментную организацию памяти. В некоторых архитектурах (Intel, например) сегментация поддерживается оборудованием.
Адреса, к которым обращается процесс, таким образом, отличаются от адресов, реально существующих в оперативной памяти . В каждом конкретном случае используемые программой адреса могут быть представлены различными способами. Например, адреса в исходных текстах обычно символические. Компилятор связывает эти символические адреса с перемещаемыми адресами (такими, как n байт от начала модуля). Подобный адрес, сгенерированный программой, обычно называют логическим (в системах с виртуальной памятью он часто называется виртуальным) адресом. Совокупность всех логических адресов называется логическим (виртуальным) адресным пространством .
Связывание адресов
Итак логические и физические адресные пространства ни по организации, ни по размеру не соответствуют друг другу. Максимальный размер логического адресного пространства обычно определяется разрядностью процессора (например, 2 32 ) и в современных системах значительно превышает размер физического адресного пространства . Следовательно, процессор и ОС должны быть способны отобразить ссылки в коде программы в реальные физические адреса, соответствующие текущему расположению программы в основной памяти . Такое отображение адресов называют трансляцией (привязкой) адреса или связыванием адресов (см. рис. 8.3).
Связывание логического адреса, порожденного оператором программы, с физическим должно быть осуществлено до начала выполнения оператора или в момент его выполнения. Таким образом, привязка инструкций и данных к памяти в принципе может быть сделана на следующих шагах [Silberschatz, 2002].
Для реализации функции хранения информации в компьютере используются следующие основные типы памяти: кэш память, ПЗУ, оперативная память (ОЗУ), долговременная (внешняя) память. Первые три типа памяти образуют внутреннюю (системную) память компьютера. Основными характеристиками любого типа памяти являются объем, время доступа и плотность записи информации.
Внутренняя память
Кэш-память является элементом микропроцессора. Физически кэш-память основана на микросхемах статической памяти SRAM (Static Random Access Memory). Для создания ячейки статической памяти используется от 4 до 8 транзисторов, которые в совокупности образуют триггер.
Постоянное запоминающее устройство (ПЗУ) — энергонезависимая память, используемая только для чтения. Данный вид памяти используется для хранения только такой информации, которая обычно не меняется в ходе эксплуатации компьютера. Типичным примером использования ПЗУ является хранение в нем базового программного обеспечения, используемого при загрузке компьютера (BIOS). Микросхемы ПЗУ располагаются на материнской плате.
Оперативное запоминающее устройство (ОЗУ) — энергозависимая память, применяемая для временного хранения команд и данных, необходимых процессору для выполнения текущих операций.
Наименьшей частицей памяти является бит, в котором хранится либо 0, либо 1. Отдельные биты объединяются в ячейки, каждая из которых имеет свой адрес, поэтому процессор при необходимости может обратиться к любой ячейке за одну операцию. Минимальной адресуемой ячейкой оперативной памяти является байт. Для выбора нужной ячейки используется ее адрес, передаваемый по адресной шине. Адресация байтов начинается с нуля.
Несмотря на то, что минимальной адресуемой ячейкой оперативной памяти является байт, физически по шине передаются не отдельные байты, а машинные слова. Размер машинного слова зависит от разрядности процессора. То есть размер машинного слова определяется количеством битов, к которым процессор имеет одновременный доступ. Например, для 16-разрядного процессора размер машинного слова будет равен 2 байтам. Адрес машинного слова равен адресу младшего байта, входящего в состав это слова.
Физически ОЗУ строится на микросхемах динамической памяти DRAM (Dynamic Random Access Memory). В динамической памяти ячейки построены на основе областей с накоплением зарядов (конденсаторов), занимающих гораздо меньшую площадь, чем триггеры, и практически не потребляющих энергии при хранении. При записи бита в такую ячейку в ней формируется электрический заряд, сохраняющийся в течение 2-4 миллисекунд. Но для сохранения заряда ячейки необходимо постоянно регенерировать (перезаписывать) ее содержимое. В связи с этим скорость доступа к ячейкам ОЗУ ниже, чем к статической памяти. Для создания ячейки динамической памяти достаточно всего одного транзистора и одного конденсатора, поэтому она дешевле статической памяти и имеет большую плотность упаковки.
Оперативная память изготавливается в виде небольших печатных плат с рядами контактов, на которых размещаются интегральные схемы памяти (модули памяти, рисунок 1).
Рисунок 1 - Схема состава микропроцессора
Модули памяти различаются по размеру и количеству контактов (в зависимости от типа используемой памяти), а также по быстродействию и объему. Объемы оперативной памяти современных компьютеров могут измеряться несколькими гигабайтами (в среднем от 1 до 4 Гбайт).
Если вы хотите разобраться в принципе работы машины, то лучшим способом это сделать, будет разобрать её, заглянуть внутрь, своими глазами увидеть все движущиеся детали и понять, как она работает. Вторым способом будет изучение документации с обилием картинок и пояснений о взаимодействии всех узлов и агрегатов.
Компьютер тоже машина, но единственное, что в нём движется – это невидимое и тихое электричество. В общем, смотреть внутрь компьютера совсем не интересно, так как визуально, в нём ничего не происходит.
На самом деле, устройство и изготовление отдельных частей компьютера – это очень интересный предмет. Но здесь мы ограничимся лишь тем, что в начале процесса имеется кремниевая пластина, затем после различных химических реакций, металлизации и резки, получается полупроводниковая пластина с маленькими квадратными кристаллами – «Чипами».
На этих чипах нанесены все необходимые логические элементы. Каждый такой чип помещают в пластиковый корпус и подключают к нему металлические ножки – «Выводы». На выходе готовой продукции получается микросхема.
Вот так под микроскопом выглядит знаменитый процессор MOS6502.
Структура настоящего чипа довольно сложная и крайне загромождена. Разобраться с принципом действия устройства, таким образом, будет крайне затруднительно. Да и опять-таки, электричество или признаки его деятельности мы всё равно не увидим.
Поэтому остаётся лишь один способ – изучение схемы.
Запомни это!
Скорее всего, вы слышали о компьютерной памяти. Итеперьмы узнаем, что она из себя представляет. Поскольку единственное, что есть внутри компьютера, это биты, их состояние (включены или выключены) и изменение их состояния, то память может «запоминать» только эти простые вещи. Сейчас мы узнаем, как это происходит.
Следующая схема отображает один бит компьютерной информации. Сохранить бит можно с помощью очередного трюка с логическим элементом И-НЕ. Мы посмотрим, как это работает в данном примере, затем в целом блоке таких элементов, где можно сохранить уже большее количество полезной информации.
Итак, что мы получили? Если ‘s’ включен, ‘o’ повторяет всё, что приходит на ‘i’, а если ‘s’ выключен, ‘o’ остаётся в последнем состоянии, независимо от того, что происходит на ‘i’. Вот так и устроена вся память компьютера. Она призвана помнить состояние битов в определённый момент. Думаю, теперь вам ясно, как работает память компьютера. Поэтому мы больше не станем прибегать к такой громоздкой схеме, а станем использовать схему попроще:
Здесь ‘s’, ‘i’ и ‘o’ так же означают: «разрешение записи», «вход записываемого бита» и «выход записанного бита», соответственно. ‘M’ – значит «Память» (Memory - англ. «Память»). Всё опять просто. Не правда ли?
Что делать с битом?
Теперь мы знаем, как сохранить бит и как его потом «вспомнить». И что теперь с этим делать? С помощью бита можно что-либо включить или выключить. Например, в памяти кофе-машины есть три бита, отвечающие за приготовление определённого вида кофе и в зависимости от того, какой бит мы включим, она приготовит нам один определённый вид кофе из трёх. Сам по себе бит ничего не значит. Чтобы от его состояния что-то зависело, нужно чтобы при определённом его значении запускалось что-то извне, какой-то следующий в схеме механизм или алгоритм. Бит может быть предназначен для чего угодно. А вот для чего именно, должен решить кто-то другой. Так с помощью одного бита можно регулировать пешеходный светофор: бит включен – светофор зеленый, выключен – красный. Казалось бы, бит влияет на движение пешеходов по зебре, но на самом деле всё не совсем так. Люди реагируют на сигнал светофора, а тот в свою очередь, срабатывает благодаря специальному устройству, которое считывает тот самый бит, в котором просто хранится одно из двух состояний. Вот так один маленький бит может запустить целую цепь событий и взаимодействий механизмов. При всём этом сам бит ничего не делает, только хранит определенное состояние.
Как розу ты не назови.
Прежде всего, начнём с небольших изменений в некоторых названиях. Мы уже знаем, что в компьютере везде используется принцип присутствия либо отсутствия электричества. И мы называли эти состояния «включено» и «выключено». Несмотря на то, что эти слова короткие и простые, для этих двух состояний придумали названия ещё проще и короче. Теперь мы будем «выключено» называть 0, а «включено» будем называть 1. Конечно, в некоторых моментах удобнее будет говорить именно «включено» или «выключено», но в основном куда удобнее использовать 1 и 0. Например, таблица истинности нашего старого знакомого И-НЕ выглядит так:
Здесь нужно уточнить, что с этого момента ничего не изменилось и внутри компьютера никаких цифр не появилось. Мы просто говорим 1, подразумевая «ВКЛ» и говорим 0, подразумевая «ВЫКЛ». Это просто общепринятое обозначение. Именно это, кстати говоря, и изображается на кнопках включения электрических приборов:
Вот видите, если на кнопке чайника написано 1 и 0, то это совсем не значит, что внутри него есть какие-то цифры.
Восемь - достаточно
Чтобы сохранить нечто большее, чем просто «Да» или «Нет», давайте создадим блок из восьми простейших битов памяти. У каждого бита есть свой собственный вход данных и собственный выход, а все разрешающие контакты соединены одним проводом. Слева подробная схема соединения однобитной памяти. Справа все тоже самое, только имеет упрощенный вид (проще чертить и проще читать).
Уданной сборки есть своё собственное название «Байт» (англ. Byte – укус). Поэтому на сборке справа буква ‘B’. Естьнесколько противоречивых историй возникновения этого названия. Но мы можем точно сказать, что у первых компьютерных дизайнеров явно было чувство юмора, так как единица информации названа бит/bit – чуток, полубайт/nibble (4 бита) – щипок, байт/byte(8 бит) –укус.
Если раньше у нас был всего один бит, а его состояние «выключено» мы теперь называем 0, то теперь у нас есть целый байт, одно из состояний которого можно записать так: 0000 0000. Теперь понимаете, почему мы перешли на 0 и 1?
Зачем же нужен байт? Когда мы используем всего один бит, мы можем получить всего два варианта сохраняемой информации: 0 или 1. А теперь представим, что у нас сборка из двух бит. Теперь у нас куда больше вариантов:
Был один бит с двумя состояниями, стало два бита с четырьмя. Т.е. 00, 01, 10 и 11. На самом деле, количество вариантов (информации) можно посчитать по простой формуле: 2^количечтво бит в сборке. Т.е. в сборке из двух бит 2^2=4. Сходится? Заранее можно посчитать, что три бита дадут нам 2^3=8 вариантов, четыре бита в сборке дадут 2^4=16, а восемь бит 2^8=256 возможных состояний, девять бит 2^9=512 и так далее.
В данный момент вы не можете посмотреть или раздать видеоурок ученикам
Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобрев в каталоге.
Получите невероятные возможности
Конспект урока "Представление чисел в компьютере"
На данном уроке мы с вами узнаем, как представляются целые и вещественные числа в компьютере.
А начнём мы с вами с целых чисел.
Как вы уже знаете, целые числа – это множество чисел, которое состоит из натуральных чисел, чисел, противоположных натуральным, и нуля.
Итак, оперативная память представляет собой таблицу, то есть состоит из ячеек.
Каждая ячейка оперативной памяти представляет собой физическую систему, которая состоит из некоторого числа однородных элементов. Эти элементы обладают двумя устойчивыми состояниями, которые соответствуют двум числам – нулю и единице. Каждый такой элемент предназначен для хранения одного из битов – разряда двоичного числа. Поэтому каждый элемент ячейки называется битом или разрядом.
То есть, можно сказать, что каждая ячейка оперативной памяти содержит число, представленное в двоичной системе счисления, так как вся информация представлена в памяти компьютера именно в этой системе счисления. Каждая ячейка также включает в себя некоторое количество клеточек (ячеек). В каждой клеточке содержится число ноль или один. Это зависит от того, какой код соответствует изначальному числу.
Давайте рассмотрим одну ячейку, которая состоит из n разрядов.
Она разбита на n клеточек. n обозначает количество разрядов или битов, отведённых под исходное число. Первая клеточка слева – это (n-1)-й разряд. Вторая – (n-2)-й разряд и так далее. Последняя клеточка – это 0-й разряд.
Можно сказать, что разряд – это степени для числа два в двоичной системе счисления.
Для представления целых чисел в компьютере существует несколько различных способов, которые отличаются друг от друга количеством разрядов и наличием или отсутствием знакового разряда. Обычно под целые числа отводится 8, 16, 32 или 64 разряда или бита.
Существует беззнаковое и знаковое представление чисел. Беззнаковое представление можно использовать только для неотрицательных чисел, отрицательные же числа представляются только в знаковом виде.
Беззнаковое представление используется для таких объектов, как адреса ячеек; счётчиков, например, количество символов в тексте; чисел, которые обозначают дату и время; размеров графических изображений в пикселях и много другое.
Для этих данных используется беззнаковое представление, так как они никак не могут быть отрицательными числами.
Давайте рассмотрим таблицу максимальных значений для беззнаковых целых n -разрядных чисел:
В первом столбце указано количество битов, во втором минимальное значение, а в третьем – максимальное значение.
Минимальное значение во всех строка равно нулю. А вот максимальное вычисляется по формуле 2 n – 1. То есть максимальное восьмиразрядное число будет равно 255.
2 8 – 1 = 256 – 1 = 255.
Максимальное значение целого неотрицательного числа достигается в том случае, когда во всех разрядах ячейки хранятся единицы.
Давайте разберёмся на примере.
Возьмём восьмиразрядную ячейку и поместим в неё максимально допустимое число 255.
Исходя из этого можем сказать, что наша ячейка состоит из 8 разрядов или клеточек. При переводе числа 255 в двоичную систему счисления получим 8 единиц. То есть в каждой клеточке будет содержаться по единице.
Число разрядов n=8. Давайте над каждой клеточкой расставим соответствующий разряд начиная с крайней левой.
Давайте вспомним общий вид нашей ячейки.
То есть ячейка из n разрядов, в нашем случае 8, состоит из n клеточек (снова из 8), а каждый разряд вычисляется по формуле n – 1, n – 2 и так далее. В зависимости от того, на каком месте находится ячейка.
А если мы возьмём все наши единицы и проставим над ними наши разряды, то мы можем перевести наше число из двоичной системы счисления в десятичную уже известным нам образом.
Если же брать число 256, то мы не сможем поместить его в восьмиразрядную ячейку, так как оно будет состоять из единицы и восьми нулей, а клеточек у нас 8.
Если мы возьмём число 65 535, то в двоичной системе счисления оно будет состоять из 16 единиц. А если шестнадцатиразрядную ячейку снова представить, как строку, состоящую из 16 клеточек и расставить соответствующие разряды, то она будет выглядеть следующим образом:
Для получения компьютерного представления беззнакового целого числа достаточно перевести его в двоичную систему счисления и дополнить полученный результат слева нулями до стандартной разрядности.
Давайте рассмотрим, как будет выглядеть число 125 в восьмиразрядном и шестнадцатиразрядном представлениях. Для этого переведём наше число в двоичную систему и получим следующее:
Наше число состоит из 7 цифр. Поместим его в восьмиразрядную ячейку.
Но ячеек 8, а цифр 7. В таком случае помещаем наше число в крайние справа семь ячеек, а в первую левую запишем ноль.
Он не повлияет на наше число, но все разряды ячейки должны быть заполнены цифрами.
А если мы поместим это же число в шестнадцатиразрядную ячейку, то получим 9 ячеек слева, заполненных нулями, а в остальных 7 будет располагаться наше число.
То есть можно сказать, что мы записываем наше число в двоичной системе счисления, а затем дополняем эту двоичную запись незначащими нулями слева в зависимости от того, из скольких разрядов состоит наше представление числа.
Это то, что касается беззнакового представления чисел.
При представлении числа со знаком (плюсом, если это положительное число, и минусом, если это отрицательное число) самый старший разряд, то есть тот, который находится слева, отводится под знак числа, а остальные разряды – под само число. Если число положительное, то в самый старший разряд (самую левую клеточку) пишется цифра 0, а если отрицательное, то 1.
Такое представление чисел называется прямым кодом. Такие коды в компьютере используются для хранения положительных чисел в запоминающих устройствах, для выполнения операций с положительными числами.
Например, число 56 в двоичной системе будет равно: 1110002.
Оно в себя включает 6 цифр. Запишем его в восьмиразрядную ячейку.
Две оставшиеся слева клеточки заполним нулями, так как число положительное.
А если бы наше число было отрицательным, то оно выглядело бы следующим образом.
В старший разряд мы поставили единицу, так как число отрицательное.
Для выполнения операций с отрицательными числами используется дополнительный код, который позволяет заменить операцию вычитания сложением.
Дополнительный код целого отрицательного числа может быть получен по следующему алгоритму:
· записать прямой код модуля числа;
· инвертировать его (заменить единицы нулями, нули – единицами);
· прибавить к инверсному коду единицу.
Давайте рассмотрим применение этого алгоритма на примере.
Нам дано число –25. При переводе в двоичную систему модуля числа получим следующее число: 110012.
Теперь смотрим на первый пункт. Нам необходимо записать прямой код модуля числа. Возьмём восьмиразрядный код. То есть наше число будет записано в клеточки, а в трёх пустых клеточках слева от него – нули.
Далее во втором пункте нам необходимо инвертировать наше число, то есть заменить единицы нулями, а нули – единицами. Получим следующее:
Теперь нам осталось, исходя из третьего пункта, прибавить к числу единицу. Получим следующее число:
Всё, что говорилось ранее, относилось к представлению целых чисел. Для представления вещественных чисел используется немного другой способ. Давайте рассмотрим его.
Любое вещественное число A может быть записано в экспоненциальной форме:
m – мантисса числа.
q – основание системы счисления.
p – порядок числа.
Возьмём для примера число 1 345 572. Его можно представить различными способами:
С экспоненциальной формой записи вы наверняка уже встречались. Например, считая на калькуляторе, вы могли получить следующее число: 1,34Е + 6.
Оно обозначает следующее: 1,34 · 10 6 . То есть знак Е – это основание десятичной системы счисления.
Из примера, можно сделать вывод, что положение запятой может изменяться.
Для единообразия мантиссу обычно записывают как правильную дробь, которая имеет после запятой цифру, отличную от нуля. То есть наше число 1 345 572 будет выглядеть следующим образом: 1 345 572 = 0,1345572 • 10 7 .
Вещественное число может занимать в памяти компьютера 32 или 64 разряда.
То есть наша ячейка в памяти может состоять из 32 или 64 клеточек. При этом выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы.
Давайте разберёмся на примере. Возьмём число 125 в десятичной системе счисления и запишем её в тридцатидвухразрядную ячейку.
Для начала нам нужно перевести число 125 в двоичную систему счисления. Получим следующее: 12510 = 11111012.
Теперь запишем это число в экспоненциальной форме.
Ставим равно. Мантиссой числа будет следующее: 0,1111101.
Ставим знак умножения. q – это основание системы счисления. В нашем случает это двоичная система счисления. Число 2 в двоичной системе счисления будет состоять из цифр 1 и 0. Запишем его.
11111012 = 0,1111101 · 10.
p – это порядок числа или же степень. Мы с вами перенесли наше число на семь знаков вправо после запятой. Значит наше p будет равно 7. При переводе числа семь в двоичную систему счисления получим следующее:
11111012 = 0,1111101 · 10 111 .
Мы с вами записали двоичное число в экспоненциальной форме.
Теперь перенесём всё в клеточки ячейки памяти, размером 32 разряда.
Под знак и порядок выделяется восемь клеточек, под знак и мантиссу двадцать четыре.
Первую клеточку слева выделяем под знак. Так как наше число положительное, то ставим цифру 0.
В разделе «Знак и порядок» запишем число 7 в двоичной системе счисления. Оставшиеся клеточки заполним нулями.
Теперь переходим к разделу «Знак и мантисса». В первой слева снова ставим цифру ноль, которая обозначает, что знак нашего числа положительный.
Далее запишем наше число, а оставшиеся клеточки заполним нулями.
Мы записали наше число в тридцатидвухразрядную ячейку.
Диапазон представления вещественных чисел определяется количеством разрядов, отведённых для хранения порядка чисел, а точность – количеством разрядов, отведённых для хранения мантиссы.
Давайте рассмотрим следующий пример:
В нём максимальное значение порядка числа составляет: 11111112 = 12710.
Следовательно, максимальное значение числа будет равно: 0,11111111111111111111111 · 10 111 .
Широкий диапазон представления вещественных чисел важен для решения научных и инженерных задач. Но в тоже время алгоритмы обработки таких чисел более трудоёмки по сравнению с алгоритмами обработки целых чисел.
А теперь пришла пора подвести итоги урока.
Сегодня мы узнали, как представляются целые и вещественные числа в компьютере, а также научились преобразовывать числа в ячейки памяти, учитывая разрядность ячейки.
Читайте также: