Вещественные числа представляются в компьютере в: Вещественные числа представляются в компьютере в естественной форме,развёрнутой форме,экспонециальной форме с нормализованной

Содержание

«Методика использования систем счисления в базовом курсе информатики»

Любая информация в памяти компьютера представляется в двоичном виде: последовательностью нулей и единиц. Исторически первым типом данных, с которыми стали работать компьютеры, были числа. Теперь это и числа, и тексты, и изображение, и звук. Работа с данными любого типа в конечном итоге сводится к обработке двоичных чисел — чисел, записываемых с помощью двух цифр, — 0 и 1.

Поэтому современные компьютерные технологии называют цифровыми технологиями.

В компьютере различаются два типа числовых величин: целые числа и вещественные числа. Различаются способы их представления в памяти компьютера.

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

Часть памяти, в которой хранится одно число, будем называть ячейкой. Минимальный размер ячейки, в которой может храниться целое число, — 8 битов, или 1 байт. Получим представление десятичного числа 25 в такой ячейке. Для этого нужно перевести число в двоичную систему счисления. Как это делается, вы уже знаете.

Теперь осталось «вписать» его в восьмиразрядную ячейку (записать так называемое внутреннее представление числа). Делается это так:

Число записывается «прижатым» к правому краю ячейки (в младших разрядах). Оставшиеся слева разряды (старшие) заполняются нулями.

Самый старший разряд — первый слева — хранит знак числа. Если число положительное, то в этом разряде ноль, если отрицательное — единица. Самому большому положительному целому числу соответствует следующий код:

Чему он равен в десятичной системе? Можно расписать это число в развернутой форме и вычислить выражение. Но можно решить задачу быстрее. Если к младшему разряду этого числа прибавить единицу, то получится число 10000000. В десятичной системе оно равно 2 7 = 128. Значит:

011111112 = 128 – 1 = 127.

Максимальное целое положительное число, помещающееся в 8-разрядную ячейку, равно 127.

Теперь рассмотрим представление целых отрицательных чисел. Как, например, в 8-разрядной ячейке памяти будет представлено число -25?

Казалось бы, очевидным ответом является следующий: нужно в представлении числа 25 заменить старший разряд с 0 на 1. Но в компьютере все несколько сложнее.

Для представления отрицательных целых чисел используется дополнительный код.

Получить дополнительный код некоторого отрицательного числа -X можно по следующему алгоритму:

1) записать внутреннее представление соответствующего ему положительного числа +Х — это мы уже умеем;
2) записать обратный код полученного числа заменой во всех разрядах 0 на 1 и 1 на 0;
3) к полученному числу прибавить 1.

Определим по этим правилам внутреннее представление числа -2510 в восьмиразрядной ячейке:

1) 00011001
2) 11100110
3) +1

11100111 — это и есть представление числа -25.

В результате выполнении такого алгоритма единица в старшем разряде получается автоматически. Она и является признаком отрицательного значения.

Проверим полученный результат. Очевидно, что при сложении чисел +25 и -25 должен получиться ноль.

Единица в старшем разряде, получаемая при сложении, выходит за границу ячейки и исчезает. В ячейке остается нолъ.

Из этого примера теперь можно понять, почему представление отрицательного числа называется дополнительным кодом.

Представление восьмиразрядного отрицательного числа -X дополняет представление соответствующего положительного числа +Х до значения 2 8 .

Следующая страница Размер ячейки и диапазон значений чисел

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

Предположим, в компьютер встроили устройство, кото­рое переводит числа из десятичной системы счисления в двоичную и обратно. Достаточно ли этого для представления чисел в памяти ЭВМ? Оказывается, нет. Мало научиться записывать числа, важно облегчить процесс автоматизированного выполнения арифметических действий над ними.

Вернемся к первым ЭВМ. Основным видом их «деятель­ности» были вычисления, но объём оперативной памяти и быстродействие процессора были невелики и инженерам приходилось придумывать разнообразные способы хранения и обработки чисел, чтобы даже сложные расчёты выполня­лись за разумное время.к. Здесь к — количество разрядов в ячейке памяти. Например, дополнительный код числа 255 будет следующим: 1111111100000001.

Это и есть представление отрицательного числа -255. Сложим коды чисел 255 и —255:

Вычитание.

2.1.2. Типы данных

Тип. Классификация типов

Тип определяет множество значений, которые могут принимать объекты профаммы (константы и переменные), а также совокупность операций, допустимых над этими значениями.

Например, значения 1 и 3 относятся к целочисленному типу, и над ними можно выполнять любые арифметические операции. Значения ‘отличная’ и ‘учеба’ принадлежат к строковому типу и над ними можно выполнять только одну операцию — склеивания, сцепления, или конкатенации текста (обозначается через +).

Все типы данных, используемые в Turbo Pascal, можно разделить на две большие группы: скалярные (простые) и структурированные (составные) (см.рис. 2.1). Скалярные типы в свою очередь подразделяются на стандартные и пользовательские (перечисляемый и интервальный). Стандартные типы предлагаются программисту разработчиками Turbo Pascal. К ним относятся: целочисленные, вещественные, символьный (литерный), логический (булевский) и указатели. Структурированные типы имеют в своей основе скалярные типы данных. К структурированным относятся: строки, массивы, множества, записи и файлы.

Целочисленные типы, символьный, логический и пользовательские типы данных (перечисляемый и интервальный) образуют группу так называемых порядковых типов, имеющих большое значение.

Тип данных очень важен при выделении памяти под переменные, поскольку каждому типу соответствует строго определенный размер ячейки памяти. В любом случае этот размер ограничен, следовательно, все типы данных имеют ограниченный диапазон значений (см. табл.2.1, 2.2, 2.3). Этот факт не согласуется с нашими математическими представлениями о числовых множествах. Тем не менее, с ним приходится считаться.

Рис. 2.1. Структура типов данных

&nbspменю &nbsp &nbsp &nbsp &nbspвверх


Стандартные типы

Целые и вещественные типы предназначены для представления числовых данных. В математике рассматривается бесконечное множество целых чисел. Целый тип в языке Turbo Pascal — это интервал целых чисел (табл. 2.1). Операции над целыми числами определены лишь тогда, когда исходные данные (операнды) и результат лежат в этом интервале. Иначе возникает ситуация, называемая переполнением. За исключением переполнения все операции над аргументами целого типа выполняются точно.

Таблица 2.1. Целочисленные типы данных

«Методика использования систем счисления в базовом курсе информатики»

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ ………………………………………………………………..………3

ГЛАВА 1. ИСТОРИЯ ВОЗНИКНОВЕНИЯ И РАЗВИТИЯ ТЕОРИИ ЧИСЕЛ ..7


  1. Исторические предпосылки развития систем счисления в разных странах ………………………..………………………………….………..……7

  2. Роль систем счисления в истории развития компьютеров…………….18

  3. Вклад ученых в развитие теории чисел ………………..……..……23

ГЛАВА 2. ПЕДАГОГИЧЕСКИЕ И МЕТОДИЧЕСКИЕ ОСОБЕННОСТИ ПРЕПОДАВАНИЯ ТЕМЫ «СИСТЕМЫ СЧИСЛЕНИЯ»………………….32

  1. Методика преподавания темы «Системы счисления» ………………32

  2. Педагогические и методические особенности обучения арифметическим основам ЭВМ в базовом курсе информатики …………………………………55

  3. Анализ и результаты исследования ……………………………………58

ЗАКЛЮЧЕНИЕ …………………………………………………………………61

БИБЛИОГРАФИЧЕСКИЙ СПИСОК ..………….…………………………….63

ПРИЛОЖЕНИЕ №1 ……………………………………………………….……65

ПРИЛОЖЕНИЕ №2 ……………………………………………………….……72

ВВЕДЕНИЕ

Тема «Система счисления» имеет прямое отношение к математической теории чисел. Однако в школьном курсе математики она, как правило, не изучается. Необходимость изучения этой темы в курсе информатики связана с тем фактом, что числа в памяти компьютера представлены в двоичной системе счисления, а для внешнего представления содержимого памяти, адресов памяти используют шестнадцатеричную или восьмеричную системы. Это одна из традиционных тем курса информатики. Являясь смежной с математикой, данная тема вносит вклад также и в фундаментальное математическое образование школьников [11].

При вводе в вычислительную машину десятичных чисел они преобразуются в двоичные, и все дальнейшие арифметические действия производятся в двоичной системе

[2].

В процессе развития ЭВМ математиками и инженерами разработаны методы выполнения математических действий, при которых все они, в том числе умножение, деление, вычитание, возведение в степень, извлечение корня и т.д., сводятся к сложению. Таким образом, из многих элементов, составляющих арифметико-логических устройств современных вычислительных машин, одними из самых многочисленных являются сумматоры, осуществляющие сложение чисел в двоичной системе. Существует множество разновидностей сумматоров, различающихся разрядностью, быстродействием, способами управления, функциональными возможностями (например, памятью) и т.п. [28].

Актуальность темы: Знание систем счисления в информатике (в частности, двоичной системы счисления) обеспечивает понимание способов кодирования информации, принципов сжатия и шифрования информации [15].

Теория кодирования и древнейшее искусство тайнописи — искусство криптографии — близки друг другу. Над разработкой различных шифров трудились многие известные ученые: философ Ф. Бэкон, математики Д. Кардано, Д. Валлис. Естественно, что одновременно с развитием методов шифровки развивались приемы расшифровки, или криптоанализа. Например, французский математик Ф. Виет (1540—1603) нашел ключ к шифру, которым пользовались испанцы во время войны с французами, и даже сумел проследить за всеми его изменениями [21].

Целью исследования является разработка методики преподавания темы «Система счисления» в школьном курсе информатики.

Объектом исследования является процесс обучения информатике в средней школе.

Предмет исследования дипломной работы — это творческая деятельность студента и будущего учителя информатики, как условие развития творческой готовности школьников, знания принципов устройства и работы ЭВМ.

Гипотеза дипломной работы предполагает, что применение компьютерной технологии, способствует эффективному усвоению информации учащимися, и позволит сделать урок нетрадиционным, ярким, насыщенным, приводит к необходимости пересмотреть различные подходы в методике обучения информатике.

Основная задача дипломной работы: формирование у учащихся навыков работы организации и проектирования учебного процесса. Разработка методического обеспечения по изучению темы «Система счисления».

Задачами дипломной работы также можно назвать следующие:


  • познакомить учащихся с возникновением и развитием системы счисления, с понятием и основанием системы;

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

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

  • побудить интерес к изучению темы, с использованием информационно-коммуникационных технологий;

Методы исследования:

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

  • наблюдение за учебно-воспитательным процессом в старших классах;

  • подбор и составление уроков по разделу: «Арифметические основы компьютера»;

  • анализ и обработка полученных данных в результате проведённых уроков.

Новизна исследования заключается в том, что проведен анализ и получены результаты по теме исследования.

Проблема исследования работы заключается в том, что некоторые ученики на бытовом уровне знакомы с новейшим программным обеспечением и техникой, которого нет у школьного учителя [22].

В работе изложен систематизированный материал, в котором использовались такие принципы как:

=> Научность — излагается набор основных терминов и понятий, необходимых для усвоения материала;

=> Последовательность — материал изложен последовательно;

=> Связь теории с практикой — излагаемый теоретический материал разбирается на реальных принципах;

=> Наглядность — материал снабжен схемами и таблицами.

В процессе объяснения темы четко прослеживаются такие этапы как:

=> Изложение тематического материала;

=> Разбор примеров;

Вопросы и задания для самопроверки. Это способствует лучшему усвоению необходимого материала.

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

Первая глава дипломной работы посвящена истории возникновения и развития теории чисел, роли систем счисления в развитии компьютеров.

Во второй главе предлагаются для рассмотрения педагогические и методические особенности преподавания темы «Система счисления».

Также во второй главе рассматриваются различные методы арифметических вычислений в различных системах счисления. Приводится сравнительный анализ проведенного урока с использованием презентации, созданной, с помощью программы Microsoft Office PowerPoint 2003, на тему: «История возникновения и развития систем счисления».

В заключении сформулированы основные выводы по работе.

В первой части приложения прилагаются практические задания по теме работы. А приложение №2 содержит разработки уроков, по темам: «Системы счисления» и «История возникновения и развития систем счисления», которые помогут для изучения данной темы.

Таким образом, тема «Система счисления», в частности, знание двоичной системы счисления – в информатике обеспечивает понимание способов кодирования информации, принципов сжатия и шифрования информации, так же является одной из главных тем раздела, арифметические основы компьютера, в базовом курсе информатики [11]. Предлагаемая работа будет полезна в процессе обучения учащимся и студентам.

ГЛАВА 1. ИСТОРИЯ ВОЗНИКНОВЕНИЯ И РАЗВИТИЯ ТЕОРИИ ЧИСЕЛ

1.1 Исторические предпосылки развития систем счисления

в разных странах

Понятие числа является одним из основных понятий современной математики. Оно является одним из древнейших понятий. Все культурные народы, обладавшие письменностью, имели понятие о числе и те или иные системы счисления [9].

Перемещаясь по странам, мы сможем познакомиться с различными системами счислений народов мира.

Развитие систем счисления в Америке

Исследователи, путешествовавшие в 16 в. по Центральной Америке, обнаружили цивилизации с высокоразвитыми системами счисления, отличными от тех, которые были известны в Европе.

Племя Майя жило в Центральной Америке в течение первого тысячелетия и во время своего расцвета имело одну из наиболее развитых и очаровательных культур этого периода. Хотя они и не знали, что такое колесо и упряжные животные, но зато превосходили других в областях плетения, архитектуры и изготовления глиняной посуды. Но истинно поразительной были их достижения в областях астрономии и математики. Пока Европа тащилась через темное средневековье, жрецы и астрономы племени Майя определили по солнцу, что продолжительность года составляет 365.242 дня (современное измерение: 365.242198), а длина лунного цикла равна 29.5302 дням (современное измерение: 29.53059). Такие удивительно точные результаты были едва возможны без мощной системы записи числа. Жрецы и астрономы племени использовали систему счисления с основанием 20. Необычная, по тому времени, их система включала позиционность и нуль. Оба этих понятия были полностью неизвестны европейцам в это время. Первые девятнадцать чисел системы счисления были представлены точками и черточками, согласно следующей таблице:

Нуль записывался как символ, похожий на раковину (домик улитки). Многозначные числа большие 19, записывались вертикально, начиная с единиц высшего разряда сверху вниз. Числа системы счисления майя носили следующие названия: кин — единицы, виналь — двадцатки, тун — 400, катун — 8000, бактун -160 000. Например, число 79 записывалось так:

Нетрудно заметить, что 79 = 3 x 20 + 19, т.е. цифру второго разряда жрецы определяли, как произведение количества единиц на число 20.Из-за различий с календарной системой племени Майя, цифра третьего разряда определялась не при помощи множителя 400 (20 x 20), как ожидалось, а 360. Со всеми последующими цифрами более высоких разрядов поступали следующим образом: цифра четвертого разряда рассчитывалась при помощи множителя 7200 (360 x 20), пятого — 144000 (7200 x 20), и так далее.

Тогда, число 13495 = (1 x 7200 + 17 x 360 + 8 x 20 + 15) имеет вид:

Числа в системе счисления древних майя записывались в столбец, причем верхние символы были старшими. Самая нижняя позиция соответствовала разряду единиц; «этажом выше» располагалось число двадцаток. Еще выше единица соответствовала не кратным числа 400, как можно было бы ожидать, а кратным числа 360. За исключением этого разряда, связанного, насколько можно судить, с календарными соображениями и продолжительностью года, все остальные более высокие позиции соответствовали степеням числа 20. 360-элементный «календарный» период под названием тун проставляет собой третий позиционный разряд майянской числовой последовательности, основанный на множителе 9. Эта последовательность, во всех остальных случаях образуемая множителем 20, бесконечна, но в практических целях используются ее первые девять членов, приведенные ниже с указанием майянских наименований соответствующих разрядных позиций и временной продолжительности: Если бы эта последовательность увеличивалась без «нарушения» в третьем разряде, тун равнялся бы 400 кинам. Однако при переходе от биналя к туну вводится множитель 9, и тун равен 18, а не 20 виналям, то есть 360 кинам, или дням. Далее последовательность вновь возвращается к стандартному закону увеличения в 20 раз, хотя и несет в себе «искажение», вызванное появлением множителя 9 между вторым и третьим разрядами. Приведенные девять членов возрастающей последовательности представляют собой систему Майя, откорректированную ими специально для исчисления временных периодов на Земле, а число 9 связано с самой концепцией времени. В любом случае, этот ряд является отклонением от «чистого счета» Майя. Наша позиционная математика десятична, то есть основана на кратных числа 10, а майянский «чистый счет» двадцатиричен, основан на числе 20, и представляется следующими «круглыми» числами, или разрядами: У индейцев майя также существовала и иероглифическая запись чисел.


Система счисления у ацтеков в Мексике была более последовательно двадцатеричной, чем у майя, но в остальном менее тонкой, так как не использовала ни позиционный принцип, ни специальный символ для нуля. Точка означала у ацтеков единицу, а для обозначения степеней числа 20 были введены новые знаки: флаг для 20, дерево для 400 и кошелек для 8000. При необходимости другие числа представлялись с помощью повторения этих символов, а от их чрезмерного повторения они избавлялись, вводя специальные промежуточные коллективные знаки: ромбовидный знак для 10 и фрагменты дерева для 100, 200 или 300 [7].

Обозначение чисел в Греции

В Древней Греции имели хождение две основных системы счисления – аттическая (или геродианова) и ионическая (она же александрийская или алфавитная).

Аттическая система счисления использовалась греками, по-видимому, уже к 5 в. до н.э. По существу это была десятичная система (хотя в ней также было выделено и число пять), а аттические обозначения чисел использовали повторы коллективных символов. Черта, обозначавшая единицу, повторенная нужное число раз, означала числа до четырех. После четырех черт греки вместо пяти черт ввели новый символ Г (древнее начертание буквы «Пи», с которой начиналось слово «пять» — «пенте»). Дойдя до десяти, они ввели еще один новый символ, первую букву слова «дека» (десять). Так как система была десятичной, грекам потребовались новые символы для каждой новой степени числа 10: символ H означал 100 (гекатон), X – 1 000 (хилиои), символ M – 10 000 (мириои или мириада). Используя число 5 как промежуточное подоснование системы счисления, греки на основе принципа умножения комбинировали пятерку с символами степеней числа 10. Так, число 50 они обозначали символом , 500 – символом , 5 000 – символом , 50 000 – символом . Более большие числа обычно описывались словами.

Ионическая система счисления – алфавитная – получила широкое распространение в начале Александрийской эпохи (примерно 3 в. до н.э.). Хотя возникнуть она могла несколькими столетиями раньше, по всей видимости, уже у пифагорейцев. Эта более тонкая система счисления была чисто десятичной, и числа в ней обозначались примерно так же, как в древнеегипетской иератической системе. Используя двадцать четыре буквы греческого алфавита и, кроме того, еще три архаических знака, ионическая система сопоставила девять букв первым девяти числам: другие девять букв – первым девяти целым кратным числа 10; и последние девять символов – первым девяти целым кратным числа 100. Для обозначения первых девяти целых кратных числа 1 000 греки частично воспользовались древневавилонским принципом позиционности, снова использовав первые девять букв греческого алфавита, снабдив их штрихами ‘ слева. Любая буква с этим значком сразу же становилась в тысячу раз больше. Чтобы отличить числа от слов, греки над соответствующей буквой ставили горизонтальную черту. Первоначально числа обозначались прописными буквами, но позднее сменились на строчные.

Ионическая система первоначально не сильно потеснила уже установившуюся аттическую или акрофоническую (по начальным буквам слов, означавших числительные) системы исчисления. По-видимому, официально она была принята в Александрии во времена правления Птолемея Филадельфийского и в последующие годы распространилась оттуда по всему греческому миру, включая Аттику. Переход к ионической системе счисления произошел в золотой век древнегреческой математики и, в частности, при жизни двух величайших математиков античности. Есть нечто большее, чем просто совпадение, в том, что именно тогда Архимед и Аполлоний работали над усовершенствованием системы обозначения больших чисел. Архимед, придумавший схему октад (эквивалентную современному использованию показателей степени числа 10), гордо заявлял в своем сочинении «Псаммит» («Исчисление песчинок»), что может численно выразить количество песчинок, необходимых для того, чтобы заполнить всю известную тогда Вселенную. Изобретенная им система обозначения чисел включала число, которое ныне можно было бы записать в виде единицы, за которой следовало бы восемьдесят тысяч миллионов миллионов цифр [4].

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

В более поздний период в вавилонской шестидесятеричной системе имелся специальный символ для обозначения «пустой» позиции, и греческие астрономы ввели для этой цели букву омикрон. Неясно, был ли такой выбор подсказан тем, что с этой буквы начиналось слово оуден (ничто). Сходство греческой буквы О с современным обозначением нуля может быть чем-то большим, чем случайное совпадение, но у нас нет точных данных, позволяющих утверждать это со всей определенностью. Поскольку греки работали с обыкновенными дробями лишь эпизодически, они использовали различные обозначения. Герон и Диофант, самые известные арифметики среди древнегреческих математиков, записывали дроби в алфавитной форме, причем числитель располагали под знаменателем. Но в принципе предпочтение отдавалось либо дробям с единичным числителем, либо шестидесятеричным дробям.

Недостатки греческих обозначений дробных чисел, включая использование шестидесятеричных дробей в десятичной системе счисления, объяснялись отнюдь не пороками основополагающих принципов. Недостатки греческой системы счисления можно отнести скорее за счет их упорного стремления к строгости, которое заметно увеличило трудности, связанные с анализом отношения несоизмеримых величин. Слово «число» греки понимали как набор единиц, поэтому то, что мы теперь рассматриваем как единое рациональное число – дробь, – греки понимали как отношение двух целых чисел. Именно этим объясняется, почему обыкновенные дроби редко встречались в греческой арифметике. Кроме того, десятичные представления обыкновенных дробей в большинстве случаев бесконечны.{-2}\). Поскольку целая часть у нормализованного представления числа всегда (кроме числа 0) равна 1, то целая часть не хранится, а хранится только дробная часть мантиссы. Количество значащих знаков мантиcсы, которое хранится, может быть различным для различных способов представления действительных чисел. Например, в типе данных двойной точности, который в языке Python соответствует типу float, в языке C — типу double, в языке Pascal — типу double, хранится 52 бита дробной части мантиcсы.

Стандарт IEEE754 определяет несколько типов представления действительных чисел, основными из которых являются числа одинарной точности (для их хранения требуется 4 байта), двойной точности (8 байт) и расширенной точности (10 байт).

Точность

Размер (байт)

C, C++

Pascal

Python

Количество знаков мантиссы

Точность, десятичных цифр

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

Минимальное положительное значение

одинарная

4

float

single

23

\(\approx 7{,}2\)

\(3{,}4\cdot10^{38}\)

\(1{,}4\cdot10^{-45}\)

двойная

8

double

double

float

52

\(\approx 15{,}9\)

\(1{,}7\cdot10^{308}\)

\(5{,}0\cdot10^{-324}\)

расширенная

10

long double (только в gnu gcc/g++)

extended

63

\(\approx 19{,}2\)

\(1{,}1\cdot10^{4932}\)

\(1{,}9\cdot10^{-4951}\)

Неточность при представлении действительных чисел

Рациональные числа, которые не могут быть представлены в виде дроби со знаменателем, являющимся степенью двойки, не могут быть точно представлены в виде конечной двоичной дроби, а, значит, не могут быть в точности представлены в памяти компьютера.{-2}\) и хранятся только 52 цифры дробной части мантиссы числа. Дальнейшие цифры отбрасываются, поэтому вместо числа \(\frac{1}{3}\), которое непредставимо в действительных типах данных, хранится другое ближайшее к нему представимое число. В случае с числом \(\frac{1}{3}\) записывается меньшее число, также меньшее число записывается и при записи в переменную двойной точности значений \(\frac{1}{10}\) и \(\frac{2}{10}\), а вот вместо числа \(\frac{3}{10}\) уже будет записано большее представимое число. Поэтому если записать в две переменные значения \(0{.}1\) и \(0{.}2\) (десятичные), а в третью переменную записать их сумму, то результат окажется меньше, чем \(\frac{3}{10}\), в то время как при записи в переменную значения \(\frac{3}{10}\) явно в виде \(0{.}3\), получится результат, больший чем \(\frac{3}{10}\). То есть при вычислении суммы чисел \(0{.}1\) и \(0{.}2\) результат получится отличным от значения \(0{.}3\), записанного в переменную явно, то есть с точки зрения компьютерной арифметики \(0{.}1 + 0{.}2 \ne 0{.}3\). Эту проблему (неточное представление действительных чисел и выполнение арифметических операций с действительными числами) всегда следует иметь в виду.

Использование эпсилон при сравнении действительных чисел

Таким образом, сравнивать действительные числа в компьютерных программах на точное равенство нельзя. Вместо этого если нужно сравнить два числа \(a\) и \(b\) на равенство, правильным будет проверка условия, что эти два числа не сильно различаются, то есть что модуль их разности не превосходит некоторого небольшого значения \(\varepsilon\), то есть что \(|a-b|<\varepsilon\). Значение \(\varepsilon\) как правило определяется для каждой задачи исходя из той точности, с которой необходимо получить результат.

В следующей таблице указано, как нужно проверять различные сравнения действительных чисел с использованием \(\varepsilon\).

Условие

Как нужно проверять

\(a=b\)

\(|a-b|\lt\varepsilon\)

\(a\ne b\)

\(|a-b|\ge \varepsilon\)

\(a\lt b\)

\(a \le b — \varepsilon\)

\(a \le b\)

\(a \lt b + \varepsilon\)

\(a\gt b\)

\(a \ge b + \varepsilon\)

\(a\ge b\)

\(a \gt b — \varepsilon\)

Специальные значения действительных типов

При работе с действительными числами, как правило, в результате алгоритмических ошибок, возникают некоторые специальные значения, например, inf и nan.

Значение inf (от infinity) возникает при переполнении действительной переменной, когда результат становится очень большим. Например, если взять положительное число и умножать его на два в цикле, то довольно скоро получится значение inf. Максимальное значение, которое может быть сохранено до получения переполнения, различается для разных типов действительных чисел.

Значение inf отличается тем, что после получения результата inf из него уже нельзя получить «обычное» действительное число. При прибавлении и вычитании к inf любого действительного (неспециального) числа, умножении и делении inf на положительное число, в результате всегда получается inf. То есть inf считается «очень большим», настолько, что сложение, умножение и деление все равно оставляет результат «очень большим». Значение inf считается больше любого действительного неспециального числа.

Также есть отрицательное значение -inf, которое считается «минус бесконечностью».

При ряде операций со значением inf может возникнуть другое специальное значение nan (от not a number — не число). Примеры операций, дающих в результате nan:

  1. \(inf — inf\)
  2. \(inf \times 0\)
  3. \(inf / inf\)

nan означает, что результат может быть «чем угодно», то есть это непредсказуемая величина и работать с ней невозможно. Любые арифметические операции c nan будут давать в результате nan. Более того, при любом сравнении nan с любым действительным числом при помощи любой из операций ==, <, <=, >, >= в результате будет получаться false. А при сравнении nan с любым действительным числом при помощи операции != всегда будет получаться true. И даже если значения двух переменных a и b оба равны nan, то сравнение a == b будет давать false, а сравнение a != b будет давать true.

В заголовочном файле cmath определены две константы INFINITY и NAN, которые принимают значения inf и nan соответственно, а также две функции bool isinf(x) и bool isnan(x), которые возвращают true, если аргумент x равен inf и nan соответственно или false в противном случае.

Вопросы и задания. Кодирование и декодирование информации

Представление информации в компьютере.

1. Представление целых чисел

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

3. Представление текстовой информации

4. Представление графической и видеоинформации

5. Представление звуковой информации

6. Методы сжатия цифровой информации

С конца XX века, века компьютеризации, человечество ежедневно пользуется двоичной системой счисления, так как вся информация, обрабатываемая современными компьютерами, представлена в двoичном виде.

Каждый регистр арифметического устройства компьютера, каждая ячейка памяти представляет собой физическую систему, состоящую из некоторого числа однородных элементов, обладающих двумя устойчивыми состояниями, одно из которых соответствует нулю, а другое — единице. Каждый такой элемент служит для записи одного из разрядов двоичного числа. Именно поэтому каждый элемент ячейки называют разрядом.

(k-1)-й разряд ……… 1-й разряд 0-й разряд

Рис.1 Ячейка из k –разрядов.

Вычислительная техника возникла как средство автоматизации вычислений, именно поэтому первые компьютеры назывались ЭВМ — электронно-вычислительными машинами. Сегодня компьютеры обрабатывают различные виды информации: числовую, текстовую, звуковую, графическую. Однако современный компьютер может хранить и обрабатывать только дискретную информацию. Следовательно, любой вид информации, подлежащий компьютерной обработке, тем или иным способом должен быть закодирован с помощью конечной последовательности целых чисел, которая затем переводится в двоичный вид для хранения в компьютере.

В данной лекции мы рассмотрим, каким образом решается проблема преобразования исходной информации в компьютерное представление для каждого вида информации. Будет показано, насколько точно компьютерное представление отражает исходную информацию, причем слово «точно» здесь применяется не только к числам (точность представления), но и к другим видам информации. А именно, рассматривается степень реалистичности передачи оттенков цвета на мониторе, степень приближенности воспроизводимой музыки к естественному звучанию музыкальных инструментов или голосу человека и т. д. Задача перевода информации естественного происхождения в компьютерную называется задачей дискретизации или квантования . Эту задачу необходимо решать для всех видов информации. Способы дискретизации для разных видов информации различны, но подходы к решению этой задачи построены на одинаковых принципах.

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

Любое целое число можно рассматривать как вещественное, но с нулевой дробной частью, т. е. можно было бы ограничиться представлением в компьютере вещественных чисел и реализацией арифметических действий над ними. Однако для эффективного использования памяти, повышения скорости выполнения вычислений и введения операции деления нацело с остатком целые числа представляются специально для них предназначенными способами.

Введение специальных способов представления целых чисел оправдано тем, что достаточно часто в задачах, решаемых с помощью компьютера, многие действия сводятся к операциям над целыми числами. Например, в задачах экономического характера данными служат количества акций, сотрудников, деталей, транспортных средств и т. д., по своему смыслу являющиеся целыми числами. Целые числа используются и для обозначения даты и времени, и для нумерации различных объектов: элементов массивов, записей в базах данных, машинных адресов и т. п.

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

При беззнаковом представлении все разряды ячейки отводятся под само число. При представлении со знаком самый старший (левый) разряд отводится под знак числа, остальные разряды — под собственно число. Если число положительное, то в знаковый разряд помещается 0, если число отрицательное — 1. Очевидно, в ячейках одного и того же размера можно представить больший диапазон целых неотрицательных чисел в беззнаковом представлении, чем чисел со знаком. Например, в одном байте (8 разрядов) можно записать положительные числа от 0 до 255, а со знаком — только до 127. Поэтому, если известно заранее, что некоторая числовая величина всегда является неотрицательной, то выгоднее рассматривать ее как беззнаковую.

Говорят, что целые числа в компьютере хранятся в формате с фиксированной запятой (другая трактовка – с фиксированной точкой ).

Представление целых положительных чисел.

Для получения компьютерного представления беззнакового целого числа в k-разрядной ячейке памяти достаточно перевести его в двоичную систему счисления и дополнить полученный результат слева нулями до k разрядов. Понятно, что существует ограничение на числа, которые мы можем записать в k-разрядную ячейку.

Максимально представимому числу соответствуют единицы во всех разрядах ячейки (двоичное число, состоящее из k единиц). Для k-разрядного представления оно будет равно 2 k — 1. Минимальное число представляется нулями во всех разрядах ячейки, оно всегда равно нулю. Ниже приведены максимальные числа для беззнакового представления при различных значениях k:

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

Определение 1. Представление числа в привычной для человека форме «знак-величина », при которой старший разряд ячейки отводится под знак, остальные k — 1 разрядов — под цифры числа, называется прямым кодом .

Например, прямые коды двоичных чисел 11001 2 и -11001 2 для восьмиразрядной ячейки равны 00011001 и 10011001 соответственно. Положительные целые числа представляются в компьютере с помощью прямого кода. Прямой код отрицательного целого числа отличается от прямого кода соответствующего положительного числа содержимым знакового разряда. Но вместо прямого кода для представления отрицательных целых чисел в компьютере используется дополнительный код .

Отметим, что максимальное положительное число, которое можно записать в знаковом представлении в k разрядах, равно 2 k-1 — 1 , что практически в два раза меньше максимального числа в беззнаковом представлении в тех же k разрядах.

Вопрос 1 . Можно ли в 8-ми разрядной ячейки представить со знаком число 200?

Вопросы.

  1. Обоснуйте целесообразность представления особым образом в компьютере целых чисел.
  2. Приведите пример умножения в ограниченном числе разрядов двух положительных чисел, в результате которого получается отрицательное число.
  3. Перечислите и объясните все ошибки, которые могут возникать при выполнении арифметических операций над целыми числами в компьютерной арифметике в ограниченном числе разрядов.
  4. Покажите, каким образом использование дополнительного кода позволяет заменить операцию вычитания операцией сложения.
  5. В восьмиразрядной ячейке запишите дополнительные коды следующих двоичных чисел: а) -1010; б) -1001; в) -11; г) -11011.
  6. Можно ли по виду дополнительного кода числа сказать, четно оно или нечетно?
  7. Найдите десятичные эквиваленты отрицательных чисел, записанных в дополнительном коде: а) 11000100; б) 11111001.
  8. Какие из чисел 43 16 , 101010 2 , 129 10 и -135 10 можно сохранить в одном байте (в 8 разрядах)?
  9. Получите 16-разрядное представление следующих чисел: а) 25; б) -610.
  10. Для чисел А = 1110 2 , В = 1101 2 выполните следующие операции: А + В; А — В; В — А; -А — А; -В — В; -А — В (в восьмиразрядном знаковом представлении).

Вопросы.

1. Запишите следующие десятичные числа в нормализованном виде:

а) 217,934; в) 10,0101; б) 75321; г) 0,00200450.

2. Приведите к нормализованному виду следующие числа, используя в качестве Р основания их систем счисления:

а) -0,000001011101 2 ;

б) 98765432Ю 10 ;

в) 123456789,ABCD 16 .

3. Сравните следующие числа:

а) 318,4785 × 10 9 и 3,184785 × 10 11 ;

б) 218,4785 × 10 -3 и 21847,85 × 10 -4 ;

в) 0,1101 2 × 2 2 и 101 2 × 2 -2 .

4. Сравните диапазон представления чисел с плавающей за­пятой в 32-разрядном формате (24 разряда для мантиссы и 6 разрядов для модуля порядка) с диапазоном представления чисел с фиксированной запятой в том же формате.

5. Каковы преимущества компьютерного представления чисел с плавающей запятой по сравнению с их представлением с фиксированной запятой, которое мы чаще всего используем в повседневной жизни?

6. Произведите следующие арифметические действия над десятичными нормализованными числами согласно праилам вещественной компьютерной арифметики (в мантиссе должно быть сохранено 6 значащих цифр):

а) 0,397621 х 10 3 + 0,237900 х 10 1 ;

б) 0,982563 х 10 2 — 0,745623 х 10 2 ;

в) 0,235001 х 10 2 0,850000 х 10 3 ;

г) 0,117800 х Ю 2: 0,235600 х 10 3 .

При выполнении этого задания следует нормализовать мантиссу результата соответствующего арифметического действия, а затем округлить ее

7. Выполните действие над машинными кодами чисел с плавающей запятой в 32-разрядном формате: X =А + В, где А = 125,75 и В = -50.

8. Перечислите и объясните все ошибки, которые могут возникать при арифметических операциях с нормализованными числами в ограниченном числе разрядов.

Квантование цвета.

Как было сказано выше, графическую информацию естественного происхождения при вводе в компьютер необходимо подвергать операциям пространственной дискретизации и квантования цвета

Квантование (кодирование) цвета базируется на математическом описании цвета, которое, в свою очередь, опирается на тот факт, что цвета можно измерять и сравнивать. Научная дисциплина, изучающая вопросы измерения цветовых характеристик, называется метрологией цвета , или колориметрией . Человек обладает очень сложным цветовосприятием, достаточно заметить, что зрительные центры мозга у новорожденных детей в течение нескольких месяцев (!) только тренируются видеть. Поэтому и математическое описание цвета тоже весьма нетривиально.

Ученым долгое время не удавалось объяснить процесс цветовосприятия. До середины XVII века господствовала умозрительная теория Аристотеля, согласно которой все цвета образуются при подмешивании черного цвета к белому. Первые серьезные результаты в этой области получил Исаак Ньютон, который описал составную природу белого света и установил, что спектральные цвета являются неразложимыми и что путем смешения спектральных цветов можно синтезировать белый цвет и всевозможные оттенки других цветов. Ньютон выделил в спектре белого света семь наиболее заметных спектральных цветов и назвал их основными — красный, оранжевый, желтый, зеленый, голубой, синий и фиолетовый. Примерно полстолетия спустя, в 1756 году, выдающийся русский ученый М. В. Ломоносов сформулировал так называемую трехкомпонентную теорию цвета, обобщив огромный эмпирический материал, накопленный им при разработке технологии производства цветного стекла и мозаики. Исследуя вопросы окрашивания стекол, Ломоносов обнаружил, что для придания стеклу любого М. В. Ломоносов (1711-1765) цветового оттенка достаточно использовать всего три основные краски, смешивая их в определенных пропорциях. Спустя примерно столетие выдающийся немецкий ученый Герман Грассман (1809-1877) ввел в трехкомпонентную теорию цвета математический аппарат в форме законов Грассмана для аддитивного синтеза цвета. Наиболее важными из них являются следующие два закона.

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

Закон непрерывности: при непрерывном изменении состава цветовой смеси результирующий цвет также меняется непрерывно. К любому цвету можно подобрать бесконечно близкий цвет.

Трехкомпонентная теория цвета стала основой колориметрии, однако обоснование этой теории появилось только на рубеже XIX-XX веков, после того, как была изучена физиология органов зрения.

Колориметрические законы Грассмана устанавливают общие свойства математических моделей цвета. Фактически законы Грассмана постулируют, что любому цвету можно однозначным образом поставить в соответствие некоторую точку трехмерного пространства. Точки пространства, которые соответствуют цветам, воспринимаемым человеческим глазом, образуют в пространстве некоторое выпуклое тело. Абсолютно черному цвету всегда соответствует точка {0, 0, 0}. Таким образом, цвета можно рассматривать как точки или векторы в трехмерном цветовом пространстве. Каждая цветовая модель задает в нем некоторую систему координат, в которой основные цвета модели играют роль базисных векторов. А квантование цвета, по сути, является дискретизацией пространства цветов.

В компьютерной технике чаще всего используются следующие цветовые модели:

  • RGB (Red-Green-Blue, красный-зеленый-синий).
  • CMYK (Cyan-Magenta-Yellow-blacK, голубой-пурпурный-желтый-черный) .
  • HSB {Hue-Saturation-Brightness, цветовой оттенок-насыщенность-яркость).

Чтобы исключить неоднозначность трактования терминов «яркость», «насыщенность», «цветовой оттенок», поясним их.

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

Цветовой оттенок и насыщенность — это две другие независимые характеристики цвета. Пусть у нас есть набор красок разного цвета. Смешением различных красок между собой мы будем получать новые цвета. Например, смесь равного количества желтой и синей красок даст зеленую краску. Цветовой оттенок, или цветовой тон рассматриваемого объекта связан со спектральным составом излучения. По цветовому тону объекта мы можем судить об окраске объекта — синей, зеленой, красной и т. д. Отдельные участки видимого спектра вызывают ощущение различных цветов.

Насыщенность характеризует степень «разбавления» цветового тона белым цветом. Например, если ярко- красную (насыщенную) краску разбавить белой, то ее цветовой оттенок останется прежним, изменится только насыщенность. Ровно так же коричневый цвет, желтый и лимонный имеют один и тот же цветовой оттенок — желтый, их различие заключается в насыщенности цветового оттенка. Наибольшей насыщенностью обладает свет от монохромного источника.

Отметим, что для белого и черного цветов насыщенность составляет 0%, т. е. эти цвета не обладают насыщенностью. Именно поэтому, подмешивая их к цветной краске, мы меняем ее насыщенность, а не оттенок.

Цветовая модель RGB.

В модели RGB основными цветами являются красный, зеленый и синий . Данная модель используется в основном при отображении графических изображений на экране монитора, телевизора, сотового телефона и т. д. Смешением трех основных цветов синтезируются все остальные цвета, их условные яркости (интенсивности) задаются вещественными числами от 0 до 1 (значение 1 соответствует максимальной яркости соответствующего цвета, которую может изобразить графическое устройство). Модель RGB определяет пространство цветов в виде единичного куба с осями «яркость красной компоненты», «яркость зеленой компоненты» и «яркость синей компоненты».

Характерные особенности RGB-модели

Любая точка куба (r, g, b ) определяет некоторый цвет.

Точка (0, 0, 0) соответствует черному цвету, точка (1, 1, 1) — белому, а линия (0, 0, 0) — (1, 1, 1) описывает все градации серого цвета: от черного до белого.

При движении по прямой от (0, 0, 0) через точку (r, g, b ) получаем все градации яркости цвета (r, g, b ), от самой темной до самой яркой. Например, (1/4, 1/4, 0) — темно- коричневый цвет, (1/2, 1/2, 0) — коричневый, (3/4, 3/4, 0) — желто-коричневый, (1, 1, 0) — желтый.

На гранях куба {r = 0}, {g = 0} и {b = 0} расположены самые насыщенные цвета.

Чем ближе точка к главной диагонали (0, 0, 0)-(1, 1, 1), тем менее насыщен соответствующий цвет.

У цветовой модели RGB есть физиологическое обоснование. Человеческий глаз содержит четыре типа зрительных рецепторов: «палочки» (рецепторы интенсивности) и

три типа «колбочек» (рецепторы цветовых оттенков). Колбочки каждого типа чувствительны к свету в своем узком диапазоне длин волн, для колбочек разных типов максимумы чувствительности приходятся на разные длины волн, диапазоны чувствительности частично перекрываются:

Именно благодаря неравномерной спектральной чувствительности и перекрытию диапазонов чувствительности человеческий глаз способен различать огромное количество цветов (около 10 млн).

Если направить в глаз составной световой сигнал с правильно подобранным соотношением яркостей красного, зеленого и синего цветов, то зрительные центры мозга не смогут отличить подмену и сделают вывод, что наблюдается нужный цвет! Такой механизм синтеза цветовых оттенков используется во всех современных типах цветных мониторов, телевизоров, дисплеев сотовых телефонов.

Чтобы использовать математическую RGB-модель для реального компьютерного представления графической информации, необходимо произвести квантование цветового пространства, т. е. найти способ представлять вещественные значения яркостей цветовых компонент в дискретной форме

Наиболее простой способ добиться этого — перевести вещественные числа из интервала }

5. Представление чисел в компьютере

Презентация «Представление информации в компьютере»

6. Представление чисел в компьютере

Ключевые слова:

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

Оперативная память компьютера состоит из ячеек, каждая из которых представляет собой физическую систему, состоящую из некоторого числа однородных элементов. Эти элементы обладают двумя устойчивыми состояниями, одно из которых соответствует нулю, а другое — единице. Каждый такой элемент служит для хранения одного из битов — разряда двоичного числа. Именно поэтому каждый элемент ячейки называют битом или разрядом (рис. 1.2).

Рис. 1.2. Ячейка памяти

Для компьютерного представления целых чисел используется несколько различных способов, отличающихся друг от друга количеством разрядов (под целые числа обычно отводится 8, 16, 32 или 64 разряда) и наличием или отсутствием знакового разряда. Беззнаковое представление можно использовать только для неотрицательных целых чисел, отрицательные числа представляются только в знаковом виде.

Беззнаковое представление используется для таких объектов, как адреса ячеек, всевозможные счётчики (например, число символов в тексте), а также числа, обозначающие дату и время, размеры графических изображений в пикселях и т. д.

Максимальное значение целого неотрицательного числа достигается в случае, когда во всех разрядах ячейки хранятся единицы. Для n-разрядного представления оно будет равно 2n-1. Минимальное число соответствует n нулям, хранящимся в n разрядах памяти, и равно нулю.

Ниже приведены максимальные значения для беззнаковых целых n-разрядных чисел:

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

 Пример 1. Число 5310 = 1101012 в восьмиразрядном представлении имеет вид:

Это же число 53 в шестнадцати разрядах будет записано следующим образом:

При представлении со знаком самый старший (левый) разряд отводится под знак числа, остальные разряды — под само число. Если число положительное, то в знаковый разряд помещается 0, если число отрицательное — 1. Такое представление чисел называется прямым кодом. В компьютере прямые коды используются для хранения положительных чисел в запоминающих устройствах, для выполнения операций с положительными числами.

 На сайте Федерального центра информационно-образовательных ресурсов (http://fcior.edu.ru/) размещён информационный модуль «Число и его компьютерный код». С помощью этого ресурса вы можете получить дополнительную информацию по изучаемой теме.

 Для выполнения операций с отрицательными числами используется дополнительный код, позволяющий заменить операцию вычитания сложением. Узнать алгоритм образования дополнительного кода вы можете с помощью информационного модуля «Дополнительный код», размещённого на сайте Федерального центра информационно-образовательных ресурсов (http://fcior.edu.ru/).

Любое вещественное число А может быть записано в экспоненциальной форме:

А = ±m • qP,

где:

m — мантисса числа;
q — основание системы счисления;
р — порядок числа.

Например, число 472 000 000 может быть представлено так: 4,72 • 108, 47,2 • 107, 472,0 • 106 и т. д.

 С экспоненциальной формой записи чисел вы могли встречаться при выполнении вычислений с помощью калькулятора, когда в качестве ответа получали записи следующего вида: 4.72Е+8.

Здесь знак «Е» обозначает основание десятичной системы счисления и читается как «умножить на десять в степени».

Из приведённого выше примера видно, что положение запятой в записи числа может изменяться.

Для единообразия мантиссу обычно записывают как правильную дробь, имеющую после запятой цифру, отличную от нуля. В этом случае число 472 000 000 будет представлено как 0,472 • 109.

Вещественное число может занимать в памяти компьютера 32 или 64 разряда. При этом выделяются разряды для хранения знака мантиссы, знака порядка, порядка и мантиссы.

Пример:

Диапазон представления вещественных чисел определяется количеством разрядов, отведённых для хранения порядка числа, а точность определяется количеством разрядов, отведённых для хранения мантиссы.

Максимальное значение порядка числа для приведённого выше примера составляет 11111112 = 12710, и, следовательно, максимальное значение числа:

0,11111111111111111111111 • 101111111

 Попытайтесь самостоятельно выяснить, каков десятичный эквивалент этой величины.

Широкий диапазон представления вещественных чисел важен для решения научных и инженерных задач. Вместе с тем следует понимать, что алгоритмы обработки таких чисел более трудоёмки по сравнению с алгоритмами обработки целых чисел.

Для компьютерного представления целых чисел используются несколько различных способов, отличающихся друг от друга количеством разрядов (8, 16, 32 или 64) и наличием или отсутствием знакового разряда. Для представления беззнакового целого числа его следует перевести в двоичную систему счисления и дополнить полученный результат слева нулями до стандартной разрядности. При представлении со знаком самый старший разряд отводится под знак числа, остальные разряды — под само число. Если число положительное, то в знаковый разряд помещается 0, если число отрицательное, то 1. Положительные числа хранятся в компьютере в прямом коде, отрицательные — в дополнительном. Вещественные числа в компьютере хранятся в формате с плавающей запятой. При этом любое число записывается так:

А = ±m • qP,

где:

m — мантисса числа;
q — основание системы счисления;
р — порядок числа.

 

Представление вещественных числе в памяти компьютера

Вещественные числа обычно представляются в виде чисел с плавающей запятой. Числа с плавающей запятой — один из возможных способов представления действительных чисел, который является компромиссом между точностью и диапазоном принимаемых значений, его можно считать аналогом экспоненциальной записи чисел, но только в памяти компьютера.

Число с плавающей запятой состоит из набора отдельных двоичных разрядов, условно разделенных на так называемые знакпорядок и мантиссу. В наиболее распространённом формате число с плавающей запятой представляется в виде набора битов, часть из которых кодирует собой мантиссу числа, другая часть — показатель степени, и ещё один бит используется для указания знака числа (0 — если число положительное, 1 — если число отрицательное). При этом порядок записывается как целое число, а мантисса — в нормализованном виде, своей дробной частью в двоичной системе счисления. Вот пример такого числа из 16 двоичных разрядов:

Знак
ПорядокМантисса
0000000000000000
141090

Знак — один бит, указывающий знак всего числа с плавающей точкой. Порядок и мантисса — целые числа, которые вместе со знаком дают представление числа с плавающей запятой в следующем виде:

, где s — знак, B-основание, E — порядок, а M — мантисса.

Порядок также иногда называют экспонентой или просто показателем степени.

При этом лишь некоторые из вещественных чисел могут быть представлены в памяти компьютера точным значением, в то время как остальные числа представляются приближёнными значениями.

Нормальная и нормализованная форма

Нормальной формой числа с плавающей запятой называется такая форма, в которой мантисса (без учёта знака) в десятичной системе находится на полуинтервале [0; 1). Такая форма записи имеет недостаток: некоторые числа записываются неоднозначно (например, 0,0001 можно записать в 4 формах — 0,0001×100, 0,001×10−1, 0,01×10−2, 0,1×10−3), поэтому распространена также другая форма записи —нормализованная, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно). То есть в мантиссе слева от запятой до применения порядка находится ровно один знак. В такой форме любое число (кроме 0) записывается единственным образом. Ноль же представить таким образом невозможно, поэтому стандарт предусматривает специальную последовательность битов для задания числа 0 (а заодно и некоторых других полезных чисел, таких как  и ). 
Диапазон значений чисел с плавающей запятой
Диапазон чисел, которые можно записать данным способом, зависит от количества бит, отведённых для представления мантиссы и показателя. Пара значений показателя (когда все разряды нули и когда все разряды единицы) зарезервирована для обеспечения возможности представления специальных чисел. К ним относятся ноль, значения NaN (Not a Number, «не число», получается как результат операций типа деления нуля на ноль) и .
НазваниеТип в языке программирования CДиапазонБиты мантиссыБиты
Half precisionНет6,10×10-5..6550410+116
Single precisionfloat3,4×10-38..3,4×103823+132
Double precisiondouble1,7×10-308..1,7×1030852+164
Алгоритм получения представления вещественного числа в памяти ЭВМ

Покажем преобразование действительного числа для представления его в памяти ЭВМ на примере величины типа Double.

Как видно из таблицы, величина это типа занимает в памяти 8 байт. На рисунке ниже показано, как здесь представлены поля мантиссы и порядка (нумерация битов осуществляется справа налево):

SСмещенный порядокМантисса
6362..5251..0

Можно заметить, что старший бит, отведенный под мантиссу, имеет номер 51, т.е. мантисса занимает младшие 52 бита. Черта указывает здесь на положение двоичной запятой. Перед запятой должен стоять бит целой части мантиссы, но поскольку она всегда равна 1, здесь данный бит не требуется и соответствующий разряд отсутствует в памяти (но он подразумевается). Значение порядка хранится здесь не как целое число, представленное в дополнительном коде. Для упрощения вычислений и сравнения действительных чисел значение порядка в ЭВМ хранится в виде смещенного числа, т.е. к настоящему значению порядка перед записью его в память прибавляется смещение. Смещение выбирается так, чтобы минимальному значению порядка соответствовал нуль. Например, для типа Double порядок занимает 11 бит и имеет диапазон от 2-1023до 21023, поэтому смещение равно 1023(10) = 1111111111(2). Наконец, бит с номером 63 указывает на знак числа.

Таким образом, из вышесказанного вытекает следующий алгоритм для получения представления действительного числа в памяти ЭВМ:

  1. перевести модуль данного числа в двоичную систему счисления;
  2. нормализовать двоичное число, т.е. записать в виде M × 2p, где M — мантисса (ее целая часть равна 1(2)) и p — порядок, записанный в десятичной системе счисления;
  3. прибавить к порядку смещение и перевести смещенный порядок в двоичную систему счисления;
  4. учитывая знак заданного числа (0 — положительное; 1 — отрицательное), выписать его представление в памяти ЭВМ.

Пример. Запишем код числа -312,3125.

  1. Двоичная запись модуля этого числа имеет вид 100111000,0101.
  2. Имеем 100111000,0101 = 1,001110000101 × 28.
  3. Получаем смещенный порядок 8 + 1023 = 1031. Далее имеем 1031(10) = 10000000111(2).
  4. Окончательно
    1100000001110011100001010000000000000000000000000000000000000000
    6362..5251..0

Очевидно, что более компактно полученный код стоит записать следующим образом: C073850000000000(16).

Другой пример иллюстрирует обратный переход от кода действительного числа к самому числу.

Пример. Пусть дан код 3FEC600000000000(16) или

0011111111101100011000000000000000000000000000000000000000000000
6362..5251..0
  1. Прежде всего замечаем, что это код положительного числа, поскольку в разряде с номером 63 записан нуль. Получим порядок этого числа: 01111111110(2) = 1022(10); 1022 — 1023 = -1.
  2. Число имеет вид 1,1100011 × 2-1 или 0,11100011.
  3. Переводом в десятичную систему счисления получаем 0,88671875.

Материалы по теме



Задание

1. Вещественные числа хранятся в 32битовой ячейке, 7 бит отведено под порядок. Оцените, какое самое большое положительно и самое маленькое отрицательное число можно записать в данную ячейку?

Ответ в коментарии. Первый правильный и обоснованный ответ получает «отлично» 🙂

Вопросы «4-3-2-1»

Ответьте в комментариях на вопросы:

4 новых понятия, которые узнал

3 новых факта, которые узнал
2 вопроса, на которые я не получил ответа
1 самая важная мысль, которая меня посетила

Как в памяти компьютера представляются целые

Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, программирование, полезный материал и многое другое.

Как в памяти компьютера представляются целые положительные и отрицательные числа?

Ответ

Для компьютерного представления целых чисел используется не­сколько различных способов, отличающихся друг от друга коли­чеством разрядов (под целые числа обычно отводится 8, 16, 32 или 64 разряда) и наличием или отсутствием знакового разряда.

Беззнаковое представление можно использовать только для неотрицатель­ных целых чисел, отрицательные числа представляются только в знаковом виде.

Для представления беззнакового целого числа его следует пере­вести в двоичную систему счисления и дополнить полученный ре­зультат слева нулями до стандартной разрядности.

Основные темы параграфа:

– представление целых чисел;
– размер ячейки и диапазон значений чисел;
– особенности работы компьютера с целыми числами;
– представление вещественных чисел;
– особенности работы компьютера с вещественными числами.

Содержание урока

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

1 1 1 1 1 1 1 1 1

Единичка в старшем разряде «выпала» из ячейки, поэтому сумма получилась равной нулю. Но так и должно быть: N + (— N) = 0. Процессор компьюте­ра операцию вычитания выполняет как сложение с дополнительным кодом вычитаемого числа. При этом переполнение ячейки (выход за предельные значе­ния) не вызывает прерывания выполнения программы. Это обстоятельство программист обязан знать и учитывать!

С вещественными числами дело обстояло немного слож­нее, поскольку надо было придумать способ, одинаковый для кодирования и больших, и маленьких чисел, то есть и миллион (1 000 000), и одну миллионную (0,000 001) хоте­лось бы кодировать посредством одного и того же алгорит­ма.

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

Такое представление чисел называется записью с плава­ющей точкой (запись 123,45 — запись с фиксированной точкой). В этой записи число имеет четыре характеристи­ки:

  • Знак числа.
  • Знак порядка.р.

    Чтобы не было неоднозначности, договорились в ЭВМ использовать нормализованное представление числа в форме с плавающей точкой. Мантисса в нормализованном представлении должна удовлетво­рять условию: 0,1п

Название целого типаДиапазон возможных значенийПамять, байт
byte (байтовый)0 — 2551
shortint (короткий целый)-128 — 1271
integer (целый)-32 768 — 32 7672
word (слово)0 — 65 5352
longint (длинный целый)-2 147 483 648 — 2 147 483 6474

В математике вещественные числа — это бесконечное непрерывное множество чисел. В вычислительных машинах вещественные числа представляются конечным множеством значений (табл. 2.2).

Например, внутреннее представление типа real может дать 248 = = 281 474 976 710 656 (более чем 1014) возможных комбинаций значащих разрядов в отведенных для него 6 байтах, или 48 битах. Это очень большое число, но все же оно не сопоставимо с множеством вещественных чисел.

Таблица 2.2. Вещественные типы данных

Название вещественного типаДиапазон возможных значенийКоличество значащих цифрпамять, байт
single (с одинарной точностью)1,5е-45 — 3,4е387 — 84
real (вещественный)2,9е-39 — 1,7е3811 — 126
double (с двойной точностью)5,0е-324 — 1,7е30815 — 168
extended (с повышенной точностью)3,4е-4932 — 1,1е493219 — 2010
соmр (сложный)-2е63+1 — 2е63-119 — 208

Логический (булевский) тип имеет всего два значения: true (да — истина, 1) и false (нет — ложь, 0), причем данные значения упорядочены, т. е. в операциях сравнения true > false (табл. 2.3).

Символьный (литерный) и строковый типы представляют данные, являющиеся символами и их последовательностями — строками (см. табл. 2.3). В памяти компьютера символы хранятся в виде их числовых кодов. Числовые коды преобразуются в буквы и другие символы лишь в момент их вывода на экран или принтер. Соответствие между символом и его кодом задается при помощи кодовой таблицы, которая находится в памяти компьютера и используется при выводе символов.

Таблица 2.3. Символьный и логический (булевский) типы данных

ТипДиапазон возможных значенийПамять, байт
char (символьный, литерный)Символы кодовой таблицы1
boolean (булевский)true, false1

Переменные, описываемые любым из типов byte, shortint, integer, word, longint, принимают только целые значения. Типы byte, word — беззнаковые.

Переменные, описываемые любым ИЗ ТИПОВ single, real, double, extended, comp принимают только вещественные значения — положительные и отрицательные.

Наиболее часто в простейших профаммах используются типы integer и real.

&nbspменю &nbsp &nbsp &nbsp &nbspвверх


Формы записи вещественных чисел

Вещественные числа могут записываться двумя способами — в общепринятой и экспоненциальной форме. Общепринятая форма предполагает запись по обычным правилам арифметики. Целая часть от дробной отделяется десятичной точкой, а не запятой, как в математике. Если точка отсутствует, число считается целым.

Запись вещественного числа в экспоненциальной форме (в форме с мантиссой и порядком) использует степень десяти (например: 25*e-3) и удобна для записи очень больших и очень маленьких чисел. При этом число изображается так: пишется мантисса, знак умножения опускается, вместо основания 10 пишется буква е, а следом указывается порядок (показатель степени). Буква е, предшествующая порядку, читается как «умножить на 10 в степени».

Например, 123,456 или -11,9 — общепринятая форма, а 5.18е+02 (518) или 10е-03 (0,01) — экспоненциальная.

Примеры неправильной записи вещественных чисел:

123 — отсутствует десятичная точка;

1,23 — запятая вместо точки;

0.123-03 — отсутствует обозначение порядка е;

12.34е1.2 — порядок числа должен быть целым.

Любое вещественное число хранится в памяти компьютера в экспоненциальной форме: отдельно — мантисса и отдельно — порядок. При этом под мантиссу и порядок отводится строго определенное количество двоичных разрядов. Выбор такого представления имеет несколько следствий:

• существуют очень маленькие значения, которые не могут быть представлены. Попытки их использования обычно приводят к возникновению ошибок;

• каждое вещественное число будет иметь приблизительно одинаковое количество значащих цифр в его представлении. Как следствие этого, ошибка для очень больших чисел будет больше по абсолютной величине;

• представители вещественных чисел неравномерно распределены внутри диапазона значений. Их плотность уменьшается с увеличением абсолютного значения числа.

Вещественные числа представлены приближенно, следовательно, арифметические действия над ними также выполняются приближенно.

Из изложенного следует несколько простых правил:

• вещественные числа нежелательно проверять на строгое равенство;

• необходимо проявлять осмотрительность при преобразовании вещественных чисел в целые и избегать вычитания почти равных чисел, т. к. могут возникнуть ошибки из-за потери многих значащих цифр;

• для уменьшения влияния ошибки округления при выполнении арифметических операций с вещественными числами необходимо иметь в виду следующее. Если складывается много чисел, то их нужно разбить на группы чисел, близких по абсолютному значению, произвести суммирование в группах, начиная с меньшего числа, после чего полученные суммы сложить, опять-таки начиная с меньшей. По аналогии с предыдущим получаются оценки для других арифметических операций и соответствующие практические рекомендации.

Вещественные числа в шестнадцатеричнои системе счисления записывать нельзя.

&nbspменю &nbsp &nbsp &nbsp &nbspвверх


Запись строк символов

Последовательность символов, заключенная в апострофы, является строкой и относится к типу string. Причем сами апострофы не входят в состав строки, а лишь указывают на то, что все заключенные в них символы следует рассматривать как единое целое — строковую константу. Если в состав строки потребуется включить сам апостроф, достаточно написать его дважды подряд. В отличие от имен пользователя, строчные и прописные буквы в составе строки различаются. Под длиной строки понимают общее число символов в ней, включая символы пробела. Максимальная длина строки — 255 символов. Символы внутри строки нумеруются от 1 до значения длины строки.

Например, ‘Язык программирования Turbo Pascal’, ‘12345’, ‘А+В1’. Более подробно строки и действия над ними будут рассматриваться далее.

&nbspменю &nbsp &nbsp &nbsp &nbspвверх


Порядковые типы

Следующие типы данных — целые, символьный и логический имеют ограниченное количество значений, идущих по порядку, поэтому эти типы принято называть порядковыми типами. Общим для них является то, что в компьютере они представляются целым числом. Вещественные типы, как уже указывалось выше, тоже принимают конечное число значений. Оно определяется форматом внутреннего представления вещественного числа в ЭВМ. Однако количество возможных значений вещественных типов настолько велико, что в компьютере невозможно сопоставить с каждым из них целое число (его номер). Все вещественные типы данных не являются порядковыми

В Turbo Pascal имеются два дополнительных пользовательских порядковых типа:

• интервальный (ограниченный) тип или диапазон;

• перечисляемый тип.

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

Интервальный тип задается своим минимальным и максимальным значениями и может быть определен на основе любого порядкового типа:

МинимальноеЗначение.. Максимальное значение

Например: 1..12 (номер месяца может принимать значения от 1 до 12) или ‘а’..’z’ (буквы латинского алфавита — от а до г).

Перечисляемый тип ограничен больше, он задается перечислением своих значений.

Например, в виде строковых констант: color=(red,blue,green,black).

В приведенном примере создается новый (нестандартный) тип данных color. Переменные этого типа могут принимать всего 4 значения: red, blue, green и black. Такая возможность создания новых пользовательских типов данных имеется в языке Turbo Pascal и некоторых других языках (см. разд. 2.2.6).

&nbspпредыдущая&nbsp &nbsp &nbsp &nbsp &nbspменю &nbsp &nbsp &nbsp &nbspвверх &nbsp &nbsp &nbsp &nbsp&nbspследующая


Компьютерное представление чисел

Компьютерное представление чисел

Большинство компьютеров представляют целые числа в виде двоичных чисел. (см. раздаточный материал «Освежение знаний по математике») с определенное количество бит. Компьютер с 16-битными целыми числами может представлять целые числа от 0 до 65 535 (то есть от 0 до 216-1), или если он решит сделать половину из них отрицательными, с -32 767 до 32 767. (Мы не будем вдаваться в подробности того, как компьютеры обрабатывают отрицательные цифры прямо сейчас) 32-битное целое число может представлять значения от 0 до 4 294 967 295, или +-2 147 483 647.

Большинство современных компьютеров представляют собой реальные (т.е. дробный) числа с использованием экспоненциальное обозначение. (Очередной раз, см. раздаточный материал «Освежение знаний по математике». На самом деле, глубоко внутри, компьютеры обычно использовать степени 2 вместо степени 10, но разница не важна для нас сейчас.) Преимущество использования экспоненциальной записи для действительных чисел заключается в том, что что он позволяет вам торговать диапазоном и точностью значений в полезный способ. Так как существует бесконечно большое количество действительных чисел (и по трем направлениям: очень большое, очень маленькое и очень отрицательное), никогда не будет возможности представить их всех (без использования потенциально бесконечного пространства).

Предположим, вы решили дайте себе память на шесть десятичных цифр (то есть, вы решили посвятить часть памяти способный хранить шесть цифр) для каждого значения. Если поставить три цифры слева и три справа десятичной точки, вы можете представлять числа от 999,999 до -999,999, и всего 0,001. (Более того, у вас будет разрешение 0,001 везде: вы можете представить 0,001 и 0,002, а также 999,998 и 999,999.) Это была бы рабочая схема, хотя 0.001 не очень маленькое число и 999,999 не очень большой.

Если, с другой стороны, вы использовали экспоненциальное представление, с четырьмя цифрами для основного числа и двумя цифрами для экспонента, вы можете представлять числа из 9,999 x 1099 к -9,999 x 1099, и такой маленький, как 1 x 10-99 (или, если вы обманываете, 0,001 x 10-99). Теперь вы можете представлять как гораздо большие числа, так и гораздо меньшие; компромисс в том, что абсолютное разрешение больше не является постоянным, и становится меньше по мере увеличения абсолютного значения чисел.Число 123,456 можно представить только как 123,4, а число 123 456 можно представить только как 123 400. Вы больше не можете представлять 999,999; вы должны согласиться на 999,9 (9,999 x 102) или 1000 (1000 x 103). Вы больше не можете отличить 999,998 от 999,999.

Так как верхние индексы набирать сложно, Языки компьютерного программирования обычно используют несколько иную обозначение. Например, число 1,234 x 105 возможно обозначено 1.234e5, где буква е заменяет часть «умножить на десять».

Вы часто будете слышать настоящие, экспоненциальные числа числа, называемые в компьютерах «числа с плавающей запятой» или просто «поплавки» и вы также услышите термин «двойной», который является сокращением от «число двойной точности с плавающей запятой.» Некоторые компьютеры также используют вещественные числа с «фиксированной точкой». (которые работают по схеме «три налево, три на правильный пример несколько абзацев назад), но это сравнительно редко, и нам не нужно обсуждать их.

Важно помнить, что точность операций с плавающей запятой количество обычно ограничено, и это может привести к удивительным результатам. Результат деления наподобие 1/3 нельзя точно представить (это бесконечно повторяющаяся дробь, 0,333333…), поэтому вычисление (1 / 3) x 3 имеет тенденцию давать результат вроде 0,999999… вместо 1,0. Более того, по основанию 2 дробь 1/10 или 0,1 в десятичном виде, также бесконечно повторяющаяся дробь, и не может быть точно представлено, так (1/10) х 10 также может дать 0.999999…. По этим и другим причинам вычисления с плавающей запятой редко точно. При работе с компьютером с плавающей запятой вы должны быть осторожны, чтобы не сравнивать два числа на точное равенство, и вы должны убедиться, что «ошибка округления» не накапливается пока это серьезно не ухудшит результаты ваших вычислений.


Читать последовательно: предыдущий следующий вверх верхняя

Эта страница Стива Саммита // Copyright 1995, 1996 // обратная связь по почте

Аппроксимация действительных чисел

Аппроксимация действительных чисел

Раздел: Информация


…Подраздел: Двоичные и другие виды информации
… …Подраздел: Аппроксимация действительных чисел

Вещественные числа доставляют нам еще несколько проблем. Это числа, которые могут быть представлены дробями или десятичными значениями. (1/3, 2,357 и и так далее..) В двоичной системе счисления, похоже, нет места для десятичная точка. Ученые-компьютерщики работали над этим проблема тоже. Когда компьютер имеет дело с действительным числом, он работает в чем-то вроде научной нотации.Номер 731.456 сохранен в двух частях. Компьютер сохраняет значение 731456 в двоичном виде. обозначения, а в отдельном месте хранит 3 (опять же в двоичном обозначение), что означает, что десятичный разряд принадлежит трем знакам от левый. Как пользователь, вам обычно не нужно знать, как это работает, но вам нужно знать, что компьютеры по-разному интерпретируют реальные числа чем целые числа. (Хотя на самом глубоком уровне они оба хранятся как серия импульсов 1 и 0.)

Реальные числа и ошибка. Есть определенные типы действительных чисел, которые очень трудно понять. компьютер для правильного хранения. Это числа с бесконечным десятичные значения. Одним из классических примеров является повторяющаяся десятичная дробь, например вы получите, когда разделите 1 на 3. 1/3 = 0,33333…. Это продолжается навсегда. Иррациональные числа, такие как пи, имеют аналогичную характеристику. Они имеют бесконечное количество цифр справа от десятичной запятой. точка. Компьютеры имеют ограниченную (хотя часто и огромную) производительность. Информация. Вы могли бы заполнить всю память самого большого компьютера в мир с цифрами пи, и до сих пор не имеет полного решение числа пи.(Есть ряд интересных исследовательских проектов там делают именно такую ​​работу.) Вы могли бы полностью заполнить мощность вашего компьютера с таким числом, но вы, вероятно, не нужно такое близкое приближение. 0,3333333, вероятно, близко достаточно 1/3 для большинства расчетов, и 3,14159265, вероятно, близко достаточно пи для большинства вычислений. Пи — бесконечно точная значения, но цифровые компьютеры не обладают бесконечной точностью. явление называется ошибкой округления и важно для иметь в виду, когда вы делаете очень точные расчеты.Большинство время это не проблема, потому что людям редко нужно быть такими точные, а есть и другие сложные схемы работы с числами которые не вызывают эту ошибку. Вы должны, однако, знать, что существует ошибка округления.


Может ли 0 быть точно представлено в компьютере

Как данные 1 или 0 представлены в компьютере?

Компьютеры используют двоичный код — цифры 0 и 1 — для хранения данных. Двоичная цифра или бит — это наименьшая единица данных в вычислениях.Он представлен 0 или 1. Двоичные числа состоят из двоичных цифр (битов), например, двоичное число 1001.

Может ли компьютер хранить точно 0,1?

0,1 В числах с плавающей запятой 0,00011 — это конечное представление бесконечного числа цифр. Обратите внимание, что если бы вы печатали менее 17 цифр, ответ был бы 0,1. Хотя это всего лишь иллюзия — компьютер не сохранил 0,1.

Что означает 0 для компьютера?

Компьютеры работают в двоичном формате, то есть они хранят данные и выполняют вычисления, используя только нули и единицы.Одна двоичная цифра может представлять только True (1) или False (0) в булевой логике. Один бит содержит одно двоичное значение — либо 0, либо 1.

Все ли действительные числа могут быть представлены на компьютере?

Почти все Действительные числа не могут быть представлены ни в компьютере, ни каким-либо другим образом! Почему? Потому что любое такое представление должно использовать конечное число символов из конечного алфавита, а это ограничивает общее количество выражений до счетного множества.

Как можно представить данные?

Существует три способа представления данных, а именно бит, байт и слово: – Бит: это также краткое название двоичных цифр.Будучи двоичным, это означает, что BIT может иметь только два значения: ноль и единицу. Характерной чертой BIT является то, что он никогда не может быть пустым.

Что означают 1 и 0?

Выключатель, если он не сломан, может быть включен или выключен, замкнут или разомкнут. Переключатель в положении «включено» или «замкнут» пропускает через себя электрический сигнал, в то время как переключатель в положении «выключено» или «разомкнут» блокирует этот сигнал. Ученые-компьютерщики представляют переключатель «вкл» с 1 и переключатель «выкл» с 0.

Могут ли двоичные числа иметь десятичные дроби?

Таким образом, мы можем видеть, что дробные двоичные числа, то есть двоичные числа, которые имеют вес меньше 1 (2 0 ), могут быть преобразованы в эквивалентные им десятичные числа путем последовательного деления двоичного весового коэффициента на значение два для каждое уменьшение степени 2, помня также, что 2 0 равно 1, и.

Когда я оцениваю 0,1 0,2 В моей версии Python отображается 0,300000000000000004 вместо 0,3 Почему?

Сложение двух после того, как показатели степени для обоих будут одинаковыми, даст нам: При представлении в виде с плавающей запятой это будет: Это представлено как 0,1 + 0,2 . Именно по этой причине получается 0,1 + 0,2 = 0,30000000000000004.

Почему 1/10 можно представить точно в десятичном виде, но не в двоичном?

Есть некоторые числа, которые могут быть точно представлены в некотором основании, но для этого требуется больше, чем некоторое количество цифр/битов.В двоичном формате число 1/10, которое удобно равно 0,1 в десятичном виде, не может быть представлено как число, которое может быть представлено фиксированным числом битов в двоичном формате.

Почему в компьютерах используются нули и единицы?

Почему в компьютерах используются нули и единицы? поскольку цифровые устройства имеют два стабильных состояния, и естественно использовать одно состояние для 0, а другое для 1. переводит программу на языке высокого уровня в программу на машинном языке. Каждый оператор в программе должен заканчиваться точкой с запятой.

Что такое двоичный код?

Binary описывает схему нумерации, в которой есть только два возможных значения для каждой цифры: 0 и 1. Этот термин также относится к любой цифровой системе кодирования/декодирования, в которой есть ровно два возможных состояния.

0 или 1 — истина или ложь?

Как и в C, используются целые числа 0 (ложь) и 1 (истина — фактически любое ненулевое целое число).

Может ли компьютер работать только с целыми числами?

Хотя мы привыкли к этим числам в диапазоне от -бесконечности до +бесконечности, компьютеры не могут работать с этим диапазоном (по крайней мере, не так легко).Поэтому вместо этого компьютеры имеют дело с подмножеством реальных математических целых чисел.

Почему компьютеры не могут представлять все возможные числа?

Сжатие бесконечного числа действительных чисел в конечное число битов требует приблизительного представления. Поэтому результат вычисления с плавающей запятой часто должен быть округлен, чтобы вернуться к его конечному представлению. Эта ошибка округления является характерной особенностью вычислений с плавающей запятой.

Как числа представлены в компьютере?

Компьютеры предназначены для использования двоичных цифр для представления чисел и другой информации.Память компьютера организована в виде строк битов, называемых словами одинаковой длины. Десятичные числа сначала преобразуются в их двоичные эквиваленты, а затем представляются либо в целочисленной форме, либо в форме с плавающей запятой.

В цифровом представлении данных используется 0 или 1?

Бит — это 0 или 1, используемые в цифровом представлении данных. Цифровой файл, обычно называемый просто файлом, представляет собой именованный набор данных, который хранится на носителе данных, например на жестком диске, компакт-диске, DVD-диске или флэш-накопителе.

Как данные представлены в компьютерах?

Компьютеры используют двоичный код — цифры 0 и 1 — для хранения данных. Двоичная цифра или бит — это наименьшая единица данных в вычислениях. Он представлен 0 или 1. Двоичные числа состоят из двоичных цифр (битов), например, двоичное число 1001.

Как символы представлены в компьютере?

Компьютеры работают в двоичном формате. В результате все символы, будь то буквы, знаки препинания или цифры, сохраняются как двоичные числа.Все символы, которые может использовать компьютер, называются набором символов.

Что означает 0 на двоичном языке?

Двоичная система счисления с основанием 2, изобретенная Готфридом Лейбницем, состоит только из двух чисел или цифр: 0 (ноль) и 1 (единица). Эта система нумерации является основой для всего двоичного кода, который используется для записи цифровых данных, таких как инструкции компьютерного процессора, используемые каждый день.

Вы считаете 0 в двоичном формате?

Счет в двоичной системе Вы можете считать в десятичной системе бесконечно, даже во сне, но как бы вы считали в двоичной системе? Ноль и единица в базе два должны выглядеть довольно знакомо: 0 и 1.

Является ли 0 «да» или «нет» в двоичном формате?

Два или двоичный код. Бинарная система — это система, в которой есть только два возможных состояния. Да или нет, включено или выключено. В двоичном формате единица означает «включено», а ноль — «выключено».

Представление данных — Computer Science Wiki

Это основная концепция компьютерных наук


Компьютеры используют двоичный код — цифры 0 и 1 — для хранения данных. Двоичная цифра или бит — это наименьшая единица данных в вычислениях.Он представлен 0 или 1. Двоичные числа состоят из двоичных цифр (битов), например, двоичное число 1001. Цепи процессора компьютера состоят из миллиардов транзисторов. Транзистор — это крошечный переключатель, который активируется электронными сигналами, которые он получает. Цифры 1 и 0, используемые в двоичном формате, отражают состояния включения и выключения транзистора. Компьютерные программы представляют собой наборы инструкций. Каждая инструкция переводится в машинный код — простые двоичные коды, которые активируют ЦП. Программисты пишут компьютерный код, который преобразуется транслятором в двоичные инструкции, которые может выполнять процессор.Все программное обеспечение, музыка, документы и любая другая информация, которая обрабатывается компьютером, также хранится в двоичном формате. [1]

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

Это видео — отличное место для понимания этой темы

Как файл хранится на компьютере[править]

Как изображение хранится в компьютере[править]


Изображение представляет собой матрицу значений пикселей.По сути, каждое изображение может быть представлено в виде матрицы значений пикселей [2]

Способ представления данных в компьютере.[править]

Для включения строк, целых чисел, символов и цветов. Это должно включать в себя рассмотрение пространства, занимаемого данными, например соотношение между шестнадцатеричным представлением цветов и количеством доступных цветов [3] .

  Целое число: 
Каждое целое число представлено в двоичном формате.Где одно число обычно будет представлено одним байтом.
 
  Символов: 
Каждый символ обычно представляет собой один байт, представленный в двоичном виде.
 

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

  Строки: 
Объединение символов. Будет представлено в двоичном виде, так как каждый 8-битный символ следует друг за другом.Каждое слово будет состоять из 16-32 бит.
 
  Цвета: 
Представлен в шестнадцатеричной системе счисления. Будет 6 шестнадцатеричных значений по 2 для каждого основного цвета в порядке красный, зеленый, синий (RGB).
например, красный цвет будет FF 00 00. При просмотре на экране он обычно будет иметь хэш-тег перед значением, например. #FF 00 00.
Можно ввести максимум около 16,8 миллионов различных цветов (16 в степени 6 или 2 в степени 24). Пожалуйста, ознакомьтесь с этой ОТЛИЧНОЙ диаграммой, чтобы лучше понять, как шестнадцатеричные числа используются для выражения цветов.
 

Этот полезный материал с благодарностью используется вики-сайтом по информатике под лицензией Creative Commons Attribution 3.0 Лицензия [4]

См. также[править]

Стандарты

 * Опишите способ представления данных в компьютере.
 

Ссылки[править]

двоичных действительных чисел. Введение Компьютеры должны иметь возможность представлять действительные числа (числа с дробями) двумя различными способами:  С фиксированной точкой  С плавающей запятой.

Презентация на тему: » Двоичные действительные числа. Введение Компьютеры должны уметь представлять действительные числа (числа с дробями) двумя различными способами:  С фиксированной точкой  С плавающей запятой.» — Транскрипт:

ins[data-ad-slot=»4502451947″]{display:none !важно;}} @media(max-width:800px){#place_14>ins:not([data-ad-slot=»4502451947″]){display:none !important;}} @media(max-width:800px){#place_14 {ширина: 250px;}} @media(max-width:500px) {#place_14 {ширина: 120px;}} ]]>

1 Двоичные действительные числа

2 Введение Компьютеры должны иметь возможность представлять действительные числа (числа с дробями) Два разных способа:  С фиксированной точкой  С плавающей запятой ПРИМЕЧАНИЕ: все в двоичном формате использует степень двойки

3 Десятичный обзор Цифры справа от запятой соответствуют отрицательным степеням числа 10 10 2 10 1 10 0.10 -1 10 -2 100101.0.10.01

4 Двоичные дроби 2 -1 2 -2 2 -3 2 -4 2 -5 2 -6 0,50,250,1250,06250,03125 0,0015625 1/21/41/81/161/321/64

5 Представление с фиксированной точкой 1. Умножьте каждую единицу на соответствующую степень числа 2. 2. Сложите полученные степени числа 2. Пример: 11,01 2 = 2 + 1 + ¼ = 3,25 10 00111,010 2 = 4 + 2 + 1 + ¼ = 7.25 10

6 Представление с плавающей запятой Представление с плавающей запятой — это, по сути, компьютерный способ хранения числа, которое было нормализовано 3 различными частями любого числа:  Мантисса: нормализованное число  Показатель степени: степень, в которую возводится основание  Знак: как мантисса, так и показатель Десятичный Пример: 12,5 = 0,125 x 10 2  нормализовано!

7 Этапы нормализации 1.Начиная с числа с фиксированной запятой 2. Нормировать число так, чтобы точка счисления (десятичная точка) была полностью слева (получается мантисса) 3. Умножить полученное число на основание, возведенное в степень

8 Пример с плавающей запятой Что такое 12.5 в представлении с плавающей запятой? 1. Преобразовать 12,5 в двоичную фиксированную точку 12,5·10 = 1100,1·2 2. Нормировать число, переместив точку счисления, получив мантиссу 1100.1 2 = 0,11001 * 2 4 3. Заполните биты для каждой из трех частей любого действительного числа: 1. Знак (2 бита) 2. Мантисса (количество бит варьируется) 3. Показатель степени (количество бит варьируется) 4. ПРИМЕЧАНИЕ : дополнение до 2 может применяться к мантиссе или показателю степени, если они отрицательные

9 Размещение битов Предположим, у вас есть следующее:  1 бит для знака мантиссы  8 бит для мантиссы  1 бит для знака экспоненты  6 бит для экспоненты S M M M M M M M M M S E E E E E E Пример: 0.11001 * 2 4  0 00011001 0 000100

10 Другой пример Преобразование -12,5 10 в двоичное: 1. Преобразование 12,5 в фиксированную точку  01100,1 2. Нормализация  0,11001 * 2 4 3. Преобразование основания экспоненты в двоичное: 4  0100 4. Двойки дополняют мантиссу, переворачивая биты и добавляя 1: 011001  100111 5. Конечный номер  1 00111 0100

11 Верхние и нижние границы Предположим, что у вас есть следующее:  1 бит для знака мантиссы  8 бит для мантиссы  1 бит для знака экспоненты  6 бит для экспоненты Какова верхняя граница для числа с плавающей запятой? Какова нижняя граница числа с плавающей запятой? Что произойдет, если мы преобразуем число с плавающей запятой в целое число?

12 Целые числа против.Целые числа с плавающей запятой:  меньший диапазон, чем у чисел с плавающей запятой  все числа в пределах диапазона являются 100% точными числами с плавающей запятой  большой диапазон чисел  не все числа в диапазоне могут быть точно представлены Пример: 2,9999999999999 повторение

13 Возможные ошибки ошибка усечения  ошибки округления с использованием чисел с плавающей запятой, поскольку не все действительные числа могут быть представлены точно число, которое меньше нижней границы для заданного числа битов


CS 357 | Представление с плавающей запятой

Назад к ссылкам

Цели обучения

  • Представление действительного числа в системе с плавающей запятой
  • Измерьте ошибку округления чисел с помощью стандарта с плавающей запятой IEEE-754
  • Вычислить требования к памяти для хранения целых чисел по сравнению с двойной точностью
  • Определение машины Эпсилон
  • Определите наименьшее представимое число с плавающей запятой
  • Предсказать результат потери значимости в арифметике с плавающей запятой

Ссылки и другой контент

Системы счисления и основания

Существует множество систем счисления, в которых может быть представлено число.\infty b_k \beta{-k}.\]

Некоторые распространенные основы, используемые для систем счисления:

  • десятичная: \(\beta=10\)
  • двоичная: \(\beta=2\)
  • восьмеричная: \(\beta=8\)
  • шестнадцатеричная \(\beta=16\)

Преобразование целых чисел между десятичными и двоичными

Современные компьютеры используют транзисторы для хранения данных. Эти транзисторы могут быть включены (1) или выключены (0). Чтобы хранить целые числа в компьютере, мы должны сначала преобразовать их в двоичные файлы. Например, двоичное представление числа 23 равно \((10111)_2\).0 = 23\]

Преобразование целого числа из десятичного в двоичное — аналогичный процесс, за исключением того, что вместо умножения на 2 мы будем делить на 2 и отслеживать остаток:

\[\begin{выравнивание*} 23 // 2 &= 11\ \mathrm{rem}\ 1 \\ 11 // 2 &= 5\ \mathrm{rem}\ 1 \\ 5 // 2 &= 2\ \mathrm{rem}\ 1 \\ 2 // 2 &= 1\ \mathrm{rem}\ 0 \\ 1 // 2 &= 0\ \mathrm{rem}\ 1 \\ \конец{выравнивание*}\]

Таким образом, $$(23)_{10}$$ становится \((10111)_2\) в двоичном виде.

Преобразование десятичных и двоичных дробей

Вещественные числа добавляют дополнительный уровень сложности.Мало того, что они имеют ведущее целое число, они также имеют дробную часть. На данный момент мы будем представлять десятичное число, например 23,625, как \((10111,101)_2\). Конечно, фактическое машинное представление зависит от того, используем ли мы представление с фиксированной или с плавающей запятой, но мы вернемся к этому в следующих разделах.

Преобразование числа с дробной частью из двоичного в десятичное аналогично преобразованию в целое, за исключением того, что мы продолжаем в отрицательных степенях 2 для дробной части:

\[(10111.{-3} = 23,625\]

Чтобы преобразовать десятичную дробь в двоичную, сначала преобразуйте целую часть в двоичную, как обсуждалось ранее. Затем возьмите дробную часть (игнорируя целую часть) и умножьте ее на 2. Полученная целая часть будет двоичной цифрой. Отбросьте целую часть и продолжайте процесс умножения на 2, пока дробная часть не станет равной 0. Например:

\[\begin{выравнивание*} 23 &= (10111)_2 \\ 2 \cdot .625 &= 1,25 \\ 2 \cdot .25 &= 0.50\\ 2 \cdot .5 &= 1.0 \\ \конец{выравнивание*}\]

Комбинируя целые и дробные части, мы находим, что \(23,625 = (10111,101)_2\).

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

.

\[\begin{выравнивание*} 2 \cdot .1 &= 0,2 \\ 2 \cdot .2 &= 0,4 \\ 2 \cdot .4 &= 0,8 \\ 2 \cdot .8 &= 1.6\ 2 \cdot .6 &= 1,2 \\ 2 \cdot .2 &= 0,4 \\ 2 \cdot .4 &= 0,8 \\ 2 \cdot .8 &= 1,6 \\ 2 \cdot .6 &= 1,2 \\ \конец{выравнивание*}\]

Как видите, десятичное число 0,1 будет представлено в двоичном виде как бесконечно повторяющийся ряд \((0,00011001100110011…)_2\). Точное количество цифр, сохраняемых в числе с плавающей запятой, зависит от того, используем ли мы одинарную точность или двойную точность.

Числа с плавающей запятой

Представление двоичного числа с плавающей запятой похоже на экспоненциальное представление десятичных дробей.м\]

где:

  • \(\pm\) это знак
  • \(q\) является мантиссом
  • \(m\) есть показатель степени

За исключением особого случая нулевых и субнормальных чисел (обсуждается ниже), мантиссы всегда представлены в нормализованной форме:

\[q = 1.f\]

где:

  • \(f\) — дробная часть

Всякий раз, когда мы сохраняем число с плавающей запятой, предполагается 1. Мы не храним всю мантиссу, только дробную часть.

IEEE-754 Одинарная точность

  • 1-битный знак
  • 8-битная экспонента \(m\)
  • 23-битная дробная часть \(f\)

Показатель степени сдвинут на 127, чтобы избежать сохранения отрицательного знака. Вместо сохранения \(m\) мы сохраняем \(m + 127\). Таким образом, максимально возможный показатель степени равен 127, а наименьший возможный показатель степени равен -126.

IEEE-754 Двойная точность

  • 1-битный знак
  • 11-битный показатель степени \(m\)
  • 52-битная дробная часть \(f\)

Показатель степени сдвинут на 1023, чтобы избежать записи отрицательного знака.Вместо сохранения \(m\) мы сохраняем \(m + 1023\). Таким образом, максимально возможный показатель степени равен 1023, а наименьший возможный показатель степени равен -1022.

Угловые корпуса в IEEE-754

В представлениях с плавающей запятой возникает несколько крайних случаев.

Ноль

В приведенном выше определении чисел с плавающей запятой мы сказали, что всегда предполагается начальная единица. Это верно для большинства чисел с плавающей запятой. Заметным исключением является ноль. Чтобы сохранить ноль как число с плавающей запятой, мы сохраняем все нули для показателя степени и все нули для дробной части.Обратите внимание, что в зависимости от бита знака может быть как +0, так и -0.

Бесконечность

Если вычисление с плавающей запятой приводит к числу, выходящему за пределы диапазона возможных чисел с плавающей запятой, оно считается бесконечным. Мы храним бесконечность со всеми единицами в экспоненте и всеми нулями в дробной части. \(+\infty\) и \(-\infty\) отличаются битом знака.

НаН

Арифметические операции, которые приводят к чему-то, что не является числом, представлены в виде числа с плавающей запятой со всеми единицами в показателе степени и ненулевой дробной частью.{-1022}\). Наименьшее представимое нормальное число называется уровнем потери значимости или UFL .

Однако мы можем пойти еще меньше, сняв ограничение, согласно которому первым числом мантиссы должно быть 1. Эти числа известны как субнормальные и хранятся со всеми нулями в показателе степени. Технически ноль также является субнормальным числом.

Важно отметить, что в субнормальных числах не так много значащих цифр, как в нормальных числах.

Параметры округления в IEEE-754

Не все действительные числа можно хранить точно так же, как числа с плавающей запятой. Эти числа округляются до ближайшего числа с плавающей запятой, что приводит к ошибке округления. IEEE-754 не указывает, как именно округлять числа с плавающей запятой, но есть несколько разных вариантов:

  • округлить до ближайшего числа с плавающей запятой (предпочтительно)
  • округлить до нуля
  • округлить
  • округлить в меньшую сторону

Машина Эпсилон

Машинный эпсилон (\(\epsilon_m\)) определяется как расстояние (пробел) между 1 и следующим наибольшим числом с плавающей запятой.(-52)

В языках программирования эти значения обычно доступны как предопределенные константы. Например, в C это константы FLT_EPSILON и DBL_EPSILON , они определены в библиотеке float.h . В Python вы можете получить доступ к этим значениям с помощью приведенного ниже фрагмента кода.

  импортировать numpy как np

# Одинарная точность
eps_single = np.finfo(np.float32).eps
print("Машина одинарной точности eps = {}".format(eps_single))

# Двойная точность
eps_double = нп.информация (np.float64).eps
print("Машина двойной точности eps = {}".format(eps_double))
  

Примечание: Существует множество определений машинного эпсилон, которые используются в различных ресурсах, например, наименьшее число, такое что \(\text{fl}(1 + \epsilon_m) \ne 1\). Эти другие определения могут давать значения, немного отличающиеся от приведенного выше определения, в зависимости от режима округления. Мы всегда будем использовать значения из приведенного выше определения «промежутка».

Относительная ошибка в представлениях с плавающей запятой

Машинный эпсилон можно использовать для ограничения относительной ошибки представления вещественного числа в виде машинного числа.1\\ \конец{выравнивание*}\]

Вы заметите, что мы добавили два числа с 4 значащими цифрами, и наш результат также имеет 4 значащие цифры. При сложении с плавающей запятой не происходит потери значащих цифр.

Вычитание с плавающей запятой и катастрофическая отмена

Вычитание с плавающей запятой работает почти так же, как и сложение. Однако при вычитании двух чисел одинаковой величины возникают проблемы.

Например, чтобы вычесть \(b = (1.{-3}\). Нет данных, чтобы указать, какими должны быть пропущенные цифры. Хотя число с плавающей запятой будет храниться с 4 цифрами в дробной части, оно будет точным только до одной значащей цифры. Эта потеря значащих цифр известна как катастрофическая отмена .

Контрольные вопросы

  1. Преобразование десятичного числа в двоичное.
  2. Преобразование двоичного числа в десятичное.
  3. В чем разница между представлением с плавающей запятой и с фиксированной запятой?
  4. Учитывая реальный номер, как бы вы сохранили его как номер машины?
  5. Учитывая действительное число, какова ошибка округления при сохранении его в виде машинного номера? Какова относительная ошибка?
  6. Объясните различные части числа с плавающей запятой: знак, мантиссу и показатель степени.
  7. Как на самом деле хранится показатель степени машинного номера?
  8. Что такое машинный эпсилон?
  9. Что такое недолив (UFL)?
  10. Что такое переполнение?
  11. Почему нехватка памяти иногда не является проблемой?
  12. Для игрушечной системы с плавающей запятой определить машинный эпсилон и UFL для этой системы.
  13. Как ограничить относительную ошибку представления вещественного числа в виде нормализованного машинного числа?
  14. Как сохранить ноль в качестве машинного номера?
  15. Что такое отмена? Почему это проблема?
  16. Какие виды операций приводят к катастрофической отмене?
  17. Учитывая два разных уравнения для оценки одного и того же значения, можете ли вы определить, какое из них более точно для определенного x и почему?
  18. Что такое субнормальные числа?
  19. Как субнормальные числа представлены в машине?
  20. Почему субнормальные числа иногда полезны?
  21. Каковы недостатки использования субнормальных чисел?

Журнал изменений

  • 19 ноября 2017 г. Мэтью Уэст mwest at illinois dot edu: добавление машинных эпсилон-диаграмм
  • 18.11.2017 Эрин Кэрриер ecarrie2 в illinois dot edu: обновляет машину eps def
  • 15-11-2017 Эрин Кэрриер ecarrie2 в illinois dot edu: исправлены опечатки при преобразовании целых чисел
  • 14 ноября 2017 г. Эрин Кэрриер ecarrie2 at illinois dot edu: уточняется при сохранении в нормализованном виде
  • 13.11.2017 Эрин Кэрриер ecarrie2 в illinois dot edu: обновляет определение машины epsilon, исправляет несовместимость заглавных букв
  • 12 ноября 2017 г. Эрин Кэрриер ecarrie2 в illinois dot edu: мелкие исправления, добавлен журнал изменений, добавлен раздел о системах счисления в разных системах счисления
  • 01.11.2017 Адам Стюарт adamjs5 в illinois dot edu: первый полный черновик
  • 16.10.2017 Люк Олсон lukeo at illinois dot edu: схема

Двоичные числа и работа компьютеров

Хотя обладание обширными знаниями математики не обязательно для изучения компьютерного программирования, оно, безусловно, помогает иметь базовое представление о некоторых фундаментальных математических знаниях, которые делают возможными вычисления.А что может быть более фундаментальным для современных вычислений, чем бинарная математика?

Термин «двоичный» означает нечто, имеющее только два возможных объекта или состояния. В двоичной системе счисления этими двумя объектами являются числа 0 и 1 . Эти два числа могут представлять множество вещей.

Например, в компьютерной логике 0 означает «ложь», а 1 — «истина». Или их можно использовать для представления обычных чисел в виде комбинаций единиц и нулей.Примером этого может быть представление чисел 0, 1, 2, 3 и 4 тремя двоичными цифрами как 000, 001, 010, 011 и 100 соответственно.

Но что все это означает на фундаментальном уровне вычислений? Почему двоичная система счисления используется в качестве основы для всех наших вычислений?

Возможно, было бы легче понять все это, если бы мы могли понять основы работы компьютеров на машинном уровне.


0 и 1: интерпретация работы компьютерной схемы

компьютеры работают на электрических сигналах, генерируемых этими схемами.Чтобы спроектировать компьютер, который работает эффективно, нам нужна система, которая может интерпретировать электрические сигналы простым и эффективным способом.

Хороший способ сделать это — интерпретировать электрические сигналы как двоичные значения: 0 для значения низкого напряжения и 1 для значения высокого напряжения. Более простой способ подумать об этом — представить себе лампочку. Если лампочка отличается от , это состояние интерпретируется как имеющее значение 0 . Если это на , это интерпретируется как имеющее значение 1.

Интерпретация состояний лампы в двоичном формате

Это широкое обобщение сокращает диапазон интерпретации каждого электрического сигнала до двух отдельных значений вместо бесконечного диапазона непрерывных значений напряжения.

С помощью этого метода работы и интерпретации электронных схем мы можем приступить к разработке кодированных систем на основе двоичных битов, чтобы помочь в наших вычислительных задачах. Эти системы могут быть двоичной логикой (ограничено только истинными или ложными значениями), числовым представлением числовых значений с основанием 2 или использованием других систем, которые полагаются на серию двоичных чисел для представления текста, изображений или звуков.

По сути, наши компьютеры используют серию высоковольтных и низковольтных электрических сигналов (двоичных значений) для представления всего, от текстов и чисел до изображений и звуков. Существуют специальные электронные схемы, такие как триггеры и другие схемы, которые могут «хранить» или сохранять эти определенные схемы электрических сигналов для длительного использования.

Например, один триггер может иметь несколько входов, которые в настоящее время имеют выход высокого напряжения (что мы интерпретируем как 1 ).Предположим, следующие два триггера имеют низковольтные выходы 0 . Мы могли бы объединить эти три вывода, чтобы получить значение 100 , которое в двоичном виде совпадает с числом 4 .

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

И это даже хорошо, поскольку работа с упрощенными и абстрактными представлениями о компьютерных операциях более чем достаточна для нас, студентов информатики.В следующих разделах мы кратко рассмотрим некоторые из различных способов, которыми компьютеры используют двоичные символы для выполнения некоторых из своих наиболее фундаментальных операций.

Булева логика: использование двоичных чисел для понимания компьютерной логики

Компьютерные программы используют очень специфическую систему логики для выполнения своих инструкций. Это известно как булева логика, сформулированная английским математиком Джорджем Булем в 19 веке.

Буль разработал систему арифметических и логических операций, использующих двоичную систему чисел.Булева логика имеет дело только с двумя возможными значениями: true или false . True представлен как 1 , а false представлен как 0 . Все логические операции приводят только к одному из этих двух двоичных значений.

Современные компьютеры постоянно используют эту форму логики для принятия решений. Эти решения приводят к тому, что наши компьютеры принимают определенный курс действий вместо другого.

Принятие решений в компьютерах

Чтобы понять, насколько важна эта система для компьютеров, не нужно смотреть дальше, чем существование логических операторов в большинстве языков программирования: операторы И, ИЛИ и НЕ.

Эти операторы напрямую взяты из операций И, ИЛИ и НЕ булевой логики. И любой, кто хоть немного знаком с программированием, знает, что эти операции являются центральными в программировании.

Но на этом влияние работ Буля не заканчивается. Фактически, многие языки программирования имеют тип данных с именем boolean , который может хранить только «true» или «false», то есть 1 или 0.

Эти логические переменные и логические операторы являются фундаментальными компонентами, используемыми в реализации условных операторов и элементов управления операторы в языках программирования.В результате их важность невозможно переоценить, так как это Программирование 101.

Существует также много других, более творческих и более сложных способов использования двоичных чисел в языках программирования. Тем не менее, этот пост в блоге служит простым обзором некоторых вещей, для которых можно использовать двоичные числа.

Таким образом, мы не будем углубляться в технические детали программирования. Возможно, я рассмотрю больше этих тем в следующих постах в блоге. А пока давайте просто рассмотрим более простую тему числовых представлений в компьютерах.


Представление числовых значений в системе счисления с основанием 2

Числовые значения представлены в наших компьютерных системах в той или иной форме системы счисления с основанием 2.2=100) .Чем больше цифр, тем больше последовательность степеней 10. Вот почему эта система счисления называется системой счисления с основанием 10.

Система счисления с основанием 2 работает таким же образом, за исключением того, что мы умножаем каждый бит (двоичную «цифру») на последовательные степени 2. В качестве примера возьмем число с основанием 2 1011 и посмотрим какое число с основанием 10 он представляет.

Двоичное разрядное значение

Как мы видим, двоичное число 1011 эквивалентно числу одиннадцать (11) по основанию 10.

Конечно, способ группировки двоичных чисел также имеет значение. Мы знаем, что 1011 представляет собой число 11 в системе счисления 10. Но что, если мы сгруппируем ту же серию битов, что и 10 11? Это два разных числа 10 и 11? Или это единый номер 1011?

Это показывает нам важность того, как мы группируем наши числа. А в компьютерах числа группируются по-разному. Например, целочисленный тип данных int в C++ хранит одно число в последовательности из 32 двоичных чисел.Таким образом, число 0 с основанием 10 представлено серией из 32 нулей, а число 1 представлено единицей, перед которой стоит 31 нуль слева от него.


Текстовое и символьное представление

Мы видели, что система счисления с основанием 2 формирует основу числового представления в наших электронных устройствах. И хотя это верно для систем текстового представления, их работа совершенно иная.

Наиболее распространенными системами представления символов являются ASCII (американский стандартный код для обмена информацией) и Unicode (расширение ASCII).Эти системы присваивают символам уникальные числовые значения и сохраняют их в двоичном формате.

Например, система ASCII изначально использовала 7 бит для представления символа. В настоящее время это было расширено до 8 бит. Например, символ A представлен числовым значением 65 в ASCII. Двоичный код для 65 равен 1000001 . Обратите внимание, что двоичное представление состоит из 7 бит. В расширенном ASCII это будет сохранено как 01000001 , так что общее количество битов равно 8.

Точно так же код ASCII для символа a равен 97 и представлен как 01100001 в расширенном ASCII. Есть также очень специальные символы, которые представлены 0 , 1 , 2 и так далее. И они представлены как 00000000 , 00000001 , 00000010 и так далее.

Эта система хорошо подходит для представления английских и некоторых европейских знаков и символов, но совершенно неадекватна для представления символов из языков со всего мира.Для размещения дополнительных символов был разработан Unicode .

Unicode изначально использовал 21 бит на символ, в отличие от 7 бит, которые изначально использовались ASCII. Это значительно расширяет диапазон значений, которые можно использовать для представления символов. Исходные коды ASCII размещаются в системе Unicode.

В настоящее время система кодирования на основе Unicode, называемая UTF-8 , является наиболее часто используемой системой кодирования в веб-приложениях. UTF-8 может использовать до 32 бит на символ, что означает, что он может представлять еще большее количество символов.


Пиксели и изображения

Неудивительно, что изображения также часто представляются числами. В компьютерах изображения чаще всего создаются с помощью крошечных цветных квадратов, называемых пикселями. Подумайте о мозаике в реальной жизни: изображение или узор создаются путем объединения множества маленьких цветных кусочков. Или головоломка, в которой мы объединяем более мелкие части, чтобы создать более крупную законченную картинку.

Пиксели работают аналогичным образом. Тысячи крошечных цветных квадратов составляют изображения, которые отображаются на наших экранах.Существует множество способов кодирования цветов в пикселях, но чаще всего используется код RGB (красный, зеленый, синий).

Коды RGB работают, комбинируя красный, зеленый и синий цвета для получения всех оттенков цветов, которые мы видим в наших современных устройствах. Каждый из трех цветовых компонентов кодируется числом, значения которого находятся в диапазоне от 0 до 255. Таким образом, существует три набора чисел, описывающих пиксель.

В качестве примера рассмотрим цвет, представленный кодом RGB (142, 150, 123).Этот цветовой код состоит из 3 компонентов: красный = 142 , зеленый = 150 и синий = 123 .

В наших компьютерах каждый из этих цветовых компонентов представлен их двоичными эквивалентами с использованием 8 бит, а затем объединен. Например, двоичный для 142 (красный компонент) 10001110, двоичный на 150 — 10010110, а двоичный для 123 — 1111011.

RED = 142 = 10001110

Green = 150 = 10010110

Синий = 123 = 01111011

Компьютер объединяет эти числа слева направо, чтобы сохранить код RGB в своей памяти.

Полный код RGB = 100011101001011001111011

Работа кода RGB

Таким образом, мы видим, что даже изображения представлены в двоичном виде. На самом деле, знание двоичных кодов пикселей изображения открывает двери для небольших забавных приложений манипулирования изображениями, таких как сокрытие одного изображения внутри другого. Я уже писал о простом методе сокрытия изображений в моем предыдущем блоге Steganography: Hiding Information Inside Pictures. Вы можете проверить это для фактического практического применения двоичных чисел в информатике.


Заключительные мысли и выводы

Двоичные числа составляют одну из основных основ современных вычислений. И хотя мы кратко рассмотрели некоторые способы использования двоичных чисел в наших компьютерах, мы также многое упустили, поскольку исчерпывающий список приложений и объяснений выходит за рамки этого блога.

При этом мы рассмотрели довольно много интересных тем, хотя они могут быть и базовыми. Мы видели, что

  • физических действий компьютерной схемы интерпретируются с использованием двоичной записи, т.е.е. в одной цепи значения низкого напряжения интерпретируются как 0 , а значения высокого напряжения интерпретируются как 1 . Компьютеры
  • используют булеву логику, интерпретируя 1 как true и 0 как false при выполнении логических операций.
  • Числа
  • представлены в формате base-2 в различных группах битов в зависимости от приложения (некоторые числа представлены 16 битами, другие 32 битами, а некоторые третьи 64 битами).
  • символам и тексту присваиваются уникальные числовые значения, которые затем преобразуются в формат с основанием 2 группами по 7 или 8 бит (ASCII) или 32 бита (UTF-8) .
  • изображения представлены группами крошечных цветных квадратов, называемых пикселями, каждый из которых закодирован числами, которые в конечном итоге преобразуются в двоичные числа

И это завершает этот блог, и я надеюсь, что пролил свет на то, почему двоичные числа так важно для вычислений.

Добавить комментарий

Ваш адрес email не будет опубликован.