В чем проблема выбора системы счисления для представления чисел в памяти компьютера
Обновлено: 21.11.2024
Строки из 0 и 1. Двоичные числа часто используются для управления компьютерами. Но почему? Почему компьютеры конвертируют в двоичный код и обратно, а не просто используют 10-ю? Здесь мы дадим вам все ответы, чтобы вы точно знали, почему компьютеры используют двоичные числа!
Современные компьютеры используют для работы двоичные числа — этот факт хорошо известен людям, изучающим информатику, или тем, кто использует эти машины более чем часто. Когда произносится бит, человек, использующий его, пытается определить сокращение двоичной цифры — элемент, который может содержать только 0 или 1. Биты организованы в восемь групп, и эти группы называются октетами или байтами. Часто измеряя 23 или 64 бита, октеты могут быть организованы в слова. И это то, о чем знает большинство людей. Причина этого, о которой большинство людей не знает.
Почему в компьютерах используются двоичные числа? Вопрос кажется достаточно простым, но ответ на него не так однозначен. В конце концов, чтобы получить правильный ответ, мы должны сначала понять и объяснить, почему инженеры и ученые, проектирующие современные компьютеры, не используют десятичную систему счисления, которой нас учили в школе, и почему используют совершенно незнакомую систему счисления для компьютеры и другие подобные машины.
Хорошая новость заключается в том, что причины, по которым инженеры и ученые используют двоичную систему счисления для компьютеров, легко понять. В конце концов, вы можете легко взять текст сегодня и преобразовать в двоичный файл онлайн. Итак, не теряя времени, давайте рассмотрим, почему компьютеры используют двоичные числа, а не другие системы счисления.
Что такое двоичный код и как он работает
Прежде чем мы перейдем к вопросу о том, почему компьютеры используют двоичные числа и преобразуют их в двоичные данные в Интернете, давайте кратко рассмотрим, что такое двоичные числа и как они работают. Двоичная система, используемая компьютерами и некоторыми другими электронными устройствами, основана на двух символах: 0 и 1. Таким образом, вы считаете только 0 и 1, а символа для двойки нет, и он представлен десяткой. Точно так же, как в десятичной системе счисления есть единицы, тенденции, сотни и тысячи, двоичная система счисления содержит единицы, четверки, восьмерки, шестнадцати и так далее.
В двоичной системе счисления 0 и 1 обозначаются как OFF и ON соответственно. Это указывает на включение или выключение электрического сигнала или степени по основанию 2. Это, вероятно, немного сбивает вас с толку, но хорошая новость заключается в том, что эта концепция подробно объясняется здесь. Позаботившись об этом, давайте перейдем к тому, почему компьютеры используют двоичные числа.
Почему компьютеры используют двоичные числа?
Наконец-то мы подошли к вопросу на миллион долларов: почему компьютеры используют двоичные числа? Ответ не так прост, как вам может показаться. Тем не менее, мы постараемся найти ответы, которые звучат логично и поддерживают использование компьютерами двоичных чисел.
Для представления числовых данных в нашей повседневной жизни мы используем десятичную систему счисления. К сожалению, компьютеры не могут сделать то же самое. Вместо этого компьютеры представляют числа, используя наименьшую используемую нами систему счисления, то есть двойку. Это двоичная система счисления. Компьютеры используют напряжения, и, поскольку напряжения часто меняются, для каждого числа в десятичной системе не устанавливается конкретное напряжение. По этой причине двоичный код измеряется как система с двумя состояниями, то есть включена или выключена. Кроме того, чтобы упростить расчеты и преобразовать их в двоичные данные в режиме онлайн, компьютеры используют двоичную систему счисления.
Если бы мы использовали для компьютеров десятичную систему счисления, в компьютер было бы встроено более сотни правил. Но, благодаря двоичной системе, компьютерам для расчетов требуется всего четыре правила. И последнее, но не менее важное: основная причина, по которой компьютеры используют двоичную систему, заключается в том, что система с двумя состояниями лучше всего подходит для оптических и магнитных запоминающих устройств компьютера. Продолжая тему, мы собираемся обсудить возможности хранения двоичной системы.
Какая система использует больше памяти: двоичная или десятичная?
Если вы только бегло взглянете на обе системы, то сразу же решите, что двоичная система занимает больше места, чем десятичная. Но это нас ничуть не удивляет, учитывая, что двоичное представление состоит из восьми цифр, а десятичное представление состоит всего из 3 цифр. Но поскольку все они хранятся в двоичном формате, это предположение становится практически неверным. Причина, по которой многие люди считают, что двоичная система занимает больше места, чем десятичная, заключается в том, как первая записывается на экране компьютера.
Вы всегда можете уменьшить количество цифр, используемых для представления числа, увеличив основание, но просто невозможно создать цифровую схему, которая использует что-либо, кроме двух, в качестве основы для работы.Причина в том, что если вы не переключитесь на квантовые вычисления, между «включено» и «выключено» не будет никакого состояния. Итак, готовы преобразовать в двоичный файл онлайн?
Использование двоичных чисел в цифровых компьютерах и электронных устройствах
С помощью переключателей вы можете кодировать числа в двоичный формат. Эта система может использоваться несколькими цифровыми устройствами, включая часы, декодер цифрового телевидения, калькулятор, охранную сигнализацию, мобильный телефон и компьютер. В памяти значения хранятся в двоичном формате. По сути, это набор электронных переключателей ВКЛ и ВЫКЛ. Предположим, вам доступен блок из восьми кулисных переключателей, и в зависимости от того, включен он или выключен, каждый переключатель может представлять 0 или 1.
Теперь, чтобы сохранить двоичное значение числа, придумайте число и установите переключатели в положение "вкл" или "выкл". Кто-то другой сможет прочитать номер, если посмотрит на переключатели. Транзисторы используются в компьютерах для реализации переключателей. Знаете ли вы, какая самая маленькая память конфигурации? Это единственный бит, о котором мы уже упоминали ранее. Для реализации этой конфигурации памяти требуется только один переключатель. Вы получаете байт, когда восемь переключателей объединяются вместе. Преобразуйте в двоичный формат онлайн, чтобы лучше понять это.
Переключатели можно включать и выключать с помощью цифрового оборудования. Кроме того, аппаратное обеспечение может считывать состояние переключателей. если есть восемь переключателей, то умножение этого числа на основание два даст использование более 250 компоновок или перестановок в зависимости от состояния переключателя, то есть от того, включен он или выключен.
Вы получили ответ, который искали?
Получили ли вы ответ на свой вопрос, то есть поняли ли вы, почему компьютеры используют двоичные числа? Если нет, то мы подведем итоги таким образом, чтобы вам было легко понять, почему компьютеры используют двоичную систему и преобразуют ее в двоичную онлайн.
В школе нас всех учат использовать десятичную систему счисления, поэтому она становится стандартной системой счисления, которую мы используем в повседневной жизни. Так почему же компьютеры не используют эту систему, а вместо этого используют двоичную систему? Ответ на этот вопрос довольно прост. Переключатели, управляющие электрическими сигналами, — это то, как действуют схемы двигателей компьютеров, а «включено» и «выключено» — это единственные два состояния, требуемые для этих переключателей. Это означает, что для представления каждого состояния переключателям требуется всего два числа: 0 и 1.
С другой стороны, если бы компьютеры использовали десятичную систему, у переключателя было бы десять возможных состояний. Это отнимает много времени и совершенно не нужно. Таким образом, чтобы избежать хлопот и упростить такие вещи, как расчеты, компьютеры используют двоичную систему счисления. Теперь вы понимаете, почему компьютеры используют двоичные числа вместо десятичных?
Начать преобразование текста в двоичный
Теперь, когда вы знаете, почему компьютеры используют двоичные числа, пришло время начать преобразовывать текст в двоичный формат. Чтобы избежать хлопот, связанных с использованием физического инструмента, преобразуйте его в двоичный файл онлайн. Все символы хранятся компьютерами в виде двоичных чисел. Цифры: 0 и 1 используются двоичным кодом для представления компьютерного текста или инструкций, и битовая строка назначается каждому символу или инструкции. Назначенные строки могут соответствовать символам, буквам или инструкциям. Кодирование данных — это то, для чего эти коды используются в вычислениях.
С помощью онлайн-инструмента преобразования двоичных файлов вы можете конвертировать в двоичные файлы и из них. С помощью этого инструмента вы также можете преобразовать систему с основанием 10, обычно используемую нами. Кроме того, если вам требуется четыре двоичных разряда для представления одной шестнадцатеричной цифры, вы можете использовать этот инструмент для преобразования в двоичный и шестнадцатеричный формат и обратно.
В низкоуровневом программировании на C, ассемблере или любом другом языке, когда мы обращаемся к низкоуровневым компонентам, мы используем адреса с шестнадцатеричным значением. Какова основная причина этого?
Получите помощь в своем исследовании
Присоединяйтесь к ResearchGate, чтобы задавать вопросы, получать отзывы и продвигать свою работу.
Последний ответ
Основная причина, по которой мы используем шестнадцатеричные числа, заключается в том, что они обеспечивают более удобное для человека представление и гораздо проще выражают представления двоичных чисел в шестнадцатеричном виде, чем в любой другой системе счисления.
1 байт = 8 бит. Он может хранить значения от 0 до 255 (от 0000 0000 до 1111 1111 в двоичном формате). Каждая шестнадцатеричная цифра представляет собой четыре двоичных разряда, также называемых полубайтами. (1 байт = 2 полубайта)
Например, один байт может иметь значения от 0000 0000 до 1111 1111 в двоичной форме и может быть легко представлен как от 00 до FF в шестнадцатеричном формате.
Выражать числа в двоичном формате для нас нелегко. Вы не можете сказать своему другу, что мой номер мобильного телефона 1001 1111 1010 0101. Вы не можете использовать этот тип номеров ежедневно для «n» контактов.Таким образом, нам нужно более простое выражение.
Поскольку байт состоит из 8 бит, имеет смысл разделить его на две группы: старшие 4 бита и младшие 4 бита. Поскольку 4 бита дают вам возможный диапазон от 0 до 15, с системой с основанием 16 легче работать, особенно если вы знакомы только с буквенно-цифровыми символами.
Двоичное значение проще выразить другому человеку как «B», чем выразить его как «1011». Таким образом, я могу просто использовать 2 шестнадцатеричных значения для представления байта и заставить его работать чисто. Таким образом, если я плохо разбираюсь в математике, мне нужно запомнить только таблицу умножения до 15. Поэтому, если у меня есть шестнадцатеричное значение EC, я могу легко определить, что 14 * 12 = 206 в десятичном виде, и могу легко записать это в двоичном виде как 1100 1110. Попытка преобразовать из двоичного файла потребует от меня знать, что представляет каждый заполнитель, и сложить все значения вместе (128 + 64 + 8 + 4 + 2 = 206). Работать с двоичным кодом через шестнадцатеричный намного проще, чем с любой другой базовой системой.
- Первые две цифры представляют количество красного цвета в цвете (макс. FF, или 255).
- Следующие две цифры представляют количество зеленого цвета в цвете (макс. FF, или 255).
- Последние две цифры обозначают количество синего в цвете (макс. FF, или 255).
Адрес управления доступом к среде (MAC) — это номер, который однозначно идентифицирует устройство в Интернете. Это относится к сетевой карте (NIC) внутри устройства.
- С ними проще и быстрее работать, они занимают меньше места на экране.
- Ошибки менее вероятны, и их легче отследить/отладить
- Большое преимущество шестнадцатеричных чисел заключается в том, что при необходимости их легко преобразовать в двоичные.
- В приведенных выше примерах все значения по-прежнему физически хранятся в двоичном формате, поэтому при использовании шестнадцатеричного значения пространство для хранения не экономится.
Популярные ответы (1)
Каим, давайте посмотрим на эволюцию человеческих систем счисления: люди пробовали систему счисления по основанию 13, основание 11, основание 4, основание 3, О боже! вы называете это. пока не была изобретена индийско-арабская система счисления BASE 10. Это значительно упростило все, от деловых операций до обработки всех видов повседневных взаимодействий, включая числа. Потому что у нас 10 пальцев :)
Как насчет компьютеров? Совершенно ясно, откуда взялась ДВОИЧНАЯ нумерация: BASE 2 — это естественное представление для процессоров. ИСТИНА или ЛОЖЬ, самая УСТОЙЧИВАЯ К ШУМУ система нумерации, которая необходима, когда вы работаете на частоте 4 ГГц и переворачиваете миллиарды этих БИТОВ в секунду, и вы не хотите перепутать 0 с 1. Любая более высокая базовая система, База 16 ( т. е. шестнадцатеричное), а BASE 256 (BYTE) является естественным расширением BINARY с использованием MULTIPLE BINARY битов.
Ваш вопрос переводится как : ПОЧЕМУ МЫ ИЗНАЧАЛЬНО ВЫБРАЛИ ГРУППУ 4-БИТА . Другими словами, почему не 5 бит? 5 бит было бы намного лучше, чем 4 . 2 ^ 5 = 32, поэтому БАЙТ будет 1024, что намного ближе к 1000 и легко для понимания. Кроме того, 10 бит — гораздо более приятное число, чем 8 ?? Итак, почему мы выбрали 4, 8, 16, 32, 64 бита для ширины процессора. вместо 5, 10, 20, 40, 80? или что-то другое?
Чтобы найти ответ, давайте углубимся в воспоминания. Японская компания по производству калькуляторов звонит очень хорошему производителю полупроводников под названием INTEL в 70-х годах и просит их разработать специализированный чип, который ПРОГРАММИРУЕТСЯ и может вычислять вещи в ПАНЦАХ. Они выбирают размер блока 4 бита, так как этот размер совместим с технологией того времени и может хорошо выполнять вычисления этого калькулятора. INTEL разрабатывает его, но имеет много производственных проблем. У них заканчивается время, и они не могут доставить товар. Японский производитель калькуляторов отменяет заказ, и INTEL думает о способах продажи этой микросхемы как ПРОГРАММИРУЕМОЙ. Они называют это 4004. Продукт хорошо продается, но размер данных недостаточно велик. INTEL немедленно разрабатывает его версию, которая может обрабатывать ДВАЖДЫ БОЛЬШЕ БИТ (8 бит) за раз. 8008 родился! Это эволюционирует до 8080, 8085, 8086 (16 бит), и мы знаем остальную часть истории.
Я совершенно точно не могу найти причин, по которым 10-битный, 20-битный или 40-битный ЦП не будет работать лучше. Итак, это заставляет меня задаться вопросом, что произойдет, если японский производитель изначально потребует 5-битный программируемый чип?
Двоичная система счисления, также называемая системой счисления с основанием 2, – это способ представления чисел, в котором для счета используются комбинации только двух цифр: ноль (0) и единица (1). Компьютеры используют двоичную систему счисления для обработки и хранения всех своих данных, включая числа, слова, видео, графику и музыку.
Термин "бит", наименьшая единица цифровой технологии, означает "ДВОИЧНАЯ ЦИФРА". Байт — это группа из восьми битов. Килобайт – это 1 024 байта или 8 192 бита.
Используя двоичные числа, 1 + 1 = 10, потому что "2" не существует в этой системе.Другая система счисления, обычно используемая десятичная система счисления или система счисления с основанием 10, считает с использованием 10 цифр (0,1,2,3,4,5,6,7,8,9), поэтому 1 + 1 = 2 и 7. + 7 = 14. Другой системой счисления, используемой программистами, является шестнадцатеричная система с основанием 16, в которой используется 16 символов (0,1,2,3,4,5,6,7,8,9,A,B, C, D, E, F), поэтому 1 + 1 = 2 и 7 + 7 = E. Системы счисления с основанием 10 и 16 более компактны, чем двоичная система. Программисты используют шестнадцатеричную систему счисления как удобный и более компактный способ представления двоичных чисел, поскольку ее очень легко преобразовать из двоичной в шестнадцатеричную и наоборот. Преобразование из двоичного в десятичное и из десятичного в двоичное сложнее.
Преимуществом двоичной системы является ее простота. Вычислительное устройство может быть создано из всего, что имеет ряд переключателей, каждый из которых может переключаться между положением «включено» и положением «выключено». Эти переключатели могут быть электронными, биологическими или механическими, если их можно перемещать по команде из одного положения в другое. Большинство компьютеров имеют электронные переключатели.
Когда переключатель находится в положении "включено", он соответствует единице, а когда переключатель находится в положении "выключено", он представляет собой нулевое значение. Цифровые устройства выполняют математические операции, включая и выключая двоичные переключатели. Чем быстрее компьютер может включать и выключать переключатели, тем быстрее он может выполнять свои вычисления.
Двоичный | Десятичный | Шестнадцатеричный |
Число | Число | Число |
Система | < td rowspan="1" colspan="1">СистемаСистема | |
0 | 0< /td> | |
1 | 1 | 1 |
10 | 2 | 2 |
11 | 3 | 3 |
100 | 4 | 4 |
101 | 5 | 5 |
110 | 6 | 6 |
111 | 7 | 7 |
1000 | 8 | 8 |
1001 | 9 | 9 |
1010 | 10 | A | 1011 | 11 | B |
1100 | 12 | < td rowspan="1" colspan="1">C|
1101 | 13 | D |
1110 | 14 | E td> |
1111 | 15 | F |
10000 | 16 | 10 |
Позиционное обозначение
Каждая цифра в двоичном числе принимает значение, которое зависит от ее положения в числе. Это называется позиционной записью. Эта концепция применима и к десятичным числам.
Например, десятичное число 123 представляет собой десятичное число 100 + 20 + 3. Число один представляет собой сотни, число два представляет десятки, а число три представляет единицы. Математическая формула для получения числа 123 может быть создана путем умножения числа в столбце сотен (1) на 100 или 10 2 ; умножение числа в столбце десятков (2) на 10 или 10 1 ; умножение числа в столбце единиц измерения (3) на 1 или 10 0 ; а затем добавить продукты вместе. Формула: 1 × 10 2 + 2 × 10 1 + 3 × 10 0 = 123.
Это показывает, что каждое значение умножается на основание (10), возведенное в возрастающую степень. Значение степени начинается с нуля и увеличивается на единицу в каждой новой позиции формулы.
Эта концепция позиционной записи также применима к двоичным числам с той разницей, что основание равно 2. Например, чтобы найти десятичное значение двоичного числа 1101, формула имеет вид 1 × 2 3 + 1 × 2 2 + 0 × 2 1 + 1 × 2 0 = 13.
Двоичные операции
С двоичными числами можно работать с помощью тех же знакомых операций, которые используются для вычисления десятичных чисел, но с использованием только нулей и единиц. Чтобы сложить два числа, нужно запомнить всего четыре правила:
Поэтому, чтобы решить следующую задачу на сложение, начните с крайнего правого столбца и добавьте 1 + 1 = 10; запишите 0 и перенесите 1. Работая с каждым столбцом слева, продолжайте добавлять, пока проблема не будет решена.
Чтобы преобразовать двоичное число в десятичное, необходимо умножить каждую цифру на степень двойки. Затем продукты складываются. Например, чтобы преобразовать двоичное число 11010 в десятичное, формула будет выглядеть следующим образом:
Чтобы преобразовать двоичное число в шестнадцатеричное, разделите двоичное число на группы по четыре, начиная справа, а затем переведите каждую группу в ее шестнадцатеричный эквивалент. Нули могут быть добавлены слева от двоичного числа, чтобы завершить группу из четырех. Например, чтобы преобразовать число 11010 в шестнадцатеричное, формула будет выглядеть следующим образом:
Цифровые данные
Биты — это фундаментальный элемент цифровых вычислений. Термин «оцифровать» означает преобразование аналогового сигнала — диапазона напряжений — в цифровой сигнал или серию чисел, представляющих напряжения. Музыкальное произведение можно оцифровать, взяв очень частые его сэмплы, называемые семплированием, и переведя их в дискретные числа, которые затем переводятся в нули и единицы. Если сэмплы берутся очень часто, музыка при воспроизведении звучит как непрерывный тон.
см. также Ранние компьютеры; Память.
Энн МакИвер МакХоуз
Библиография
Блиссмер, Роберт Х. Представляем компьютерные концепции, системы и приложения. Нью-Йорк: John Wiley & Sons, Inc., 1989.
Диллиган, Роберт Дж. Вычисления в эпоху Интернета: введение в интерактивный Интернет. Нью-Йорк: Plenum Press, 1998.
Уайт, Рон. How Computers Work: Millennium Edition. Indianapolis: Que Corporation, 1999.
Когда в памяти компьютера хранится число с плавающей запятой, сохраняется только определенное фиксированное количество цифр (например, шесть шестнадцатеричных цифр или, что эквивалентно, 24 двоичных цифры в Фортране с одинарной точностью).
Связанные термины:
Скачать в формате PDF
Об этой странице
Учебник VHDL
3.9.8 Тип данных: реальный
1 сигнал действительноно : реальный ;
2 переменная realno : real := 123.456;
Микроконтроллерные системы
1.22 Числа с плавающей запятой
Числа с плавающей запятой используются для представления нецелых дробных чисел и используются в большинстве инженерных и технических расчетов, например 3,256, 2,1 и 0,0036. Наиболее часто используемым стандартом с плавающей запятой является стандарт IEEE. В соответствии с этим стандартом числа с плавающей запятой представляются 32 битами (одинарная точность) или 64 битами (двойная точность).
В этом разделе мы рассмотрим формат только 32-битных чисел с плавающей запятой и посмотрим, как с такими числами можно выполнять математические операции.
Согласно стандарту IEEE, 32-битные числа с плавающей запятой представлены следующим образом:
Старший значащий бит указывает на знак числа, где 0 означает положительное значение, а 1 – отрицательное.
Мантисса имеет ширину 23 бита и представляет возрастающую отрицательную степень числа 2. Например, если мы предположим, что мантисса равна «11100000000000000000000», значение этой мантиссы вычисляется следующим образом: 2 −1 + 2 −2 + 2−3 = 7/8.
Десятичный эквивалент числа с плавающей запятой можно рассчитать по следующей формуле:
Число = ( − 1 ) s 2 e − 127 1 ⋅ f , где s = 0 для положительных чисел, 1 для отрицательных чисел, e = показатель степени (от 0 до 255) и f = мантисса.
Как показано в приведенной выше формуле, перед мантиссой стоит скрытая единица. т. е. мантисса отображается как «1 · f».
Самое большое и самое маленькое число в 32-битном формате с плавающей запятой:
Это число равно (2 − 2 −23 ) 2 127 или десятичное число 3,403 × 10 38 . Точность чисел сохраняется до шести знаков после запятой.
Это число равно 2 −126 или десятичному числу 1,175 × 10 −38 .
Цифровые строительные блоки
Сара Л. Харрис, Дэвид Харрис, в Digital Design and Computer Architecture, 2022
5.3.2 Системы чисел с плавающей запятой*
Числа с плавающей запятой аналогичны экспоненциальному представлению. Они обходят ограничение наличия постоянного количества целых и дробных битов, позволяя представлять очень большие и очень маленькие числа. Как и в экспоненциальном представлении, числа с плавающей запятой имеют знак, мантиссу (M), основание (B) и показатель степени em> (E), как показано на рис. 5.27. Например, число 4,1 × 10 3 — это десятичное экспоненциальное представление числа 4100. Оно имеет мантиссу 4,1, основание 10 и показатель степени 3. Десятичная точка плавает вправо после старшей цифры.Числа с плавающей запятой имеют основание 2 с бинарной мантиссой. 32 бита используются для представления 1 бита знака, 8 битов экспоненты и 23 битов мантиссы.
Рисунок 5.27. Числа с плавающей запятой
32-битные числа с плавающей запятой
Показать представление десятичного числа 228 с плавающей запятой.
Решение
Сначала преобразуйте десятичное число в двоичное: 22810 = 111001002 = 1.11001 2 × 2 7 . На рис. 5.28 показано 32-битное кодирование, которое позже будет изменено для повышения эффективности. Бит знака положительный (0), 8 битов экспоненты дают значение 7, а оставшиеся 23 бита — это мантисса.
Рисунок 5.28. 32-разрядная версия с плавающей запятой 1
В двоичном формате с плавающей запятой первый бит мантиссы (слева от двоичной точки) всегда равен 1, поэтому его не нужно сохранять. Он называется неявным ведущим. На рис. 5.29 показано модифицированное представление с плавающей запятой 22810 = 111001002 × 2 0 = 1,110012 × 2 7 . Неявный ведущий не включается в 23-битную мантиссу для эффективности. Сохраняются только дробные биты. Это освобождает дополнительный бит для полезных данных.
Рисунок 5.29. 32-разрядная версия 2 с плавающей запятой
Как может показаться очевидным, существует множество разумных способов представления чисел с плавающей запятой. В течение многих лет производители компьютеров использовали несовместимые форматы с плавающей запятой. Результаты с одного компьютера не могут быть напрямую интерпретированы другим компьютером.
Институт инженеров по электротехнике и электронике (IEEE) решил эту проблему, создав в 1985 году Стандарт IEEE 754 для операций с плавающей запятой, определяющий числа с плавающей запятой. Этот формат с плавающей запятой в настоящее время используется почти повсеместно, и именно он обсуждается в этом разделе.
Мы вносим последнее изменение в поле экспоненты. Показатель степени должен представлять как положительные, так и отрицательные показатели. Для этого в числах с плавающей запятой используется смещенный показатель степени, который представляет собой исходный показатель плюс постоянное смещение. 32-разрядные числа с плавающей запятой используют смещение 127. Например, для показателя степени 7 смещенный показатель степени равен 7 + 127 = 134 = 100001102< /под>. Для показателя степени −4 смещенный показатель степени равен: −4 + 127 = 123 = 011110112. На рис. 5.30 показано 1,110012 × 2 7, представленное в нотации с плавающей запятой с неявной ведущей единицей и смещенным показателем степени 134 (7 + 127). Эта запись соответствует стандарту IEEE 754 для операций с плавающей запятой.
Рисунок 5.30. Нотация с плавающей запятой IEEE 754
Особые случаи: 0, ±∞ и NaN
Стандарт IEEE для чисел с плавающей запятой имеет особые случаи для представления таких чисел, как ноль, бесконечность и недопустимые результаты. Например, представление числа ноль проблематично в нотации с плавающей запятой из-за неявной ведущей единицы. Для этих особых случаев зарезервированы специальные коды с показателями всех нулей или всех единиц. В таблице 5.4 показаны представления с плавающей запятой 0, ±∞ и NaN. Как и в случае с числами знака/величины, число с плавающей запятой имеет как положительный, так и отрицательный 0. NaN используется для чисел, которые не существуют, например – 1 или log2(−5).
Таблица 5.4. Обозначения с плавающей запятой IEEE 754 для 0, ±∞ и NaN
Число | Знак | Показатель степени | Дробь |
---|---|---|---|
0 | X | 00000000 | 000000000000000000000000 |
∞ | 0 | 11111111 | 000000000000000000000000 |
−∞ | 1 | 11111111 | 00000000000000000000000 |
NaN | X | 11111111 | Ненулевой |
Форматы с одинарной, двойной и четырехкратной точностью
Таблица 5.5. Форматы с плавающей запятой
Формат | Всего битов | Битов знака | Биты экспоненты | Биты дроби | Смещение | Одиночный | 32 | 1 | 8 | 23 | 127 |
---|---|---|---|---|---|
Двойной | 64 | 1 | 11 | 52 | 1023 |
Квадрат | 128 | 1 | 15 | 112 td> | 16363 |
За исключением особых случаев, упомянутых ранее, обычные числа с одинарной точностью охватывают диапазон от ±1,175494 × 10 −38 до ±3,402824 × 10 38 . Они имеют точность около семи значащих десятичных цифр (потому что 2 −24 ≈ 10 −7 ).Точно так же обычные числа с двойной точностью охватывают диапазон от ±2,22507385850720 × 10 -308 до ±1,79769313486232 × 10 308 и имеют точность около 15 значащих десятичных цифр. Квадраты имеют точность 34 десятичных разряда, но еще не получили широкой поддержки в аппаратном или программном обеспечении.
Некоторые числа с плавающей запятой не могут точно представляться, например 1,7. Однако, когда вы вводите 1,7 в свой калькулятор, вы видите именно 1,7, а не 1,69999.… Чтобы справиться с этим, некоторые приложения, такие как калькуляторы и финансовые программы, используют двоично-десятичное число (BCD< /em>) числа или форматы с основанием 10. Числа BCD кодируют каждую десятичную цифру, используя четыре бита в диапазоне от 0 до 9. Например, запись с фиксированной точкой BCD 1,7 с четырьмя целыми битами и четырьмя дробными битами будет 0001,0111. Конечно, ничего не бывает бесплатно. Цена заключается в увеличении сложности арифметического оборудования и бесполезных кодировках (кодировки AF не используются) и, следовательно, в снижении производительности. Таким образом, для приложений с интенсивными вычислениями операции с плавающей запятой намного быстрее.
Округление
Арифметические результаты, выходящие за пределы допустимой точности, должны быть округлены до ближайшего числа. Режимы округления: округление в меньшую сторону, округление в большую сторону, округление до нуля и округление до ближайшего. Режим округления по умолчанию — округление до ближайшего. В режиме округления к ближайшему, если два числа одинаково близки, выбирается то, у которого 0 стоит в наименее значимой позиции дроби.
Вспомните, что число переполняется, когда его величина слишком велика для представления. Точно так же число заполняется меньше, когда оно слишком маленькое для представления. В режиме округления к ближайшему переполнению округляется до ±∞, а потеря значимости округляется до 0.
Сложение с плавающей запятой
Сложение чисел с плавающей запятой не так просто, как сложение чисел с дополнением до двух. Шаги для добавления чисел с плавающей запятой с одинаковым знаком следующие:
Извлечь биты степени и дроби.
Добавьте ведущую 1, чтобы сформировать мантиссу.
При необходимости сдвиньте мантиссу на меньшую.
Нормализуйте мантиссу и при необходимости измените показатель степени.
Собрать экспоненту и дробь обратно в число с плавающей запятой.
На рис. 5.31 показано сложение с плавающей запятой 7,875 (1,11111 × 2 2 ) и 0,1875 (1,1 × 2 −3 ). Результат равен 8,0625 (1,0000001 × 2 3 ). После извлечения битов дроби и показателя степени и добавления неявной ведущей 1 на шагах 1 и 2, показатели степени сравниваются путем вычитания меньшего показателя из большего показателя. Результатом является количество битов, на которое меньшее число сдвигается вправо, чтобы выровнять подразумеваемую двоичную точку (т. е. сделать показатели равными) на шаге 4. Выровненные числа складываются. Поскольку мантисса суммы больше или равна 2,0, результат нормализуется путем его сдвига вправо на один бит и увеличения показателя степени. В этом примере результат точный, поэтому округление не требуется. Результат сохраняется в записи с плавающей запятой путем удаления неявной ведущей единицы мантиссы и добавления перед ним знакового бита.
Рисунок 5.31. Сложение с плавающей запятой
Арифметика с плавающей запятой обычно выполняется на аппаратном уровне, чтобы сделать ее быстрой. Это аппаратное обеспечение, называемое модулем с плавающей запятой (FPU), обычно отличается от центрального процессора (CPU). Печально известная ошибка деления с плавающей запятой (FDIV) в Pentium FPU стоила Intel 475 миллионов долларов за отзыв и замену дефектных микросхем. Ошибка возникла просто из-за неправильной загрузки таблицы поиска.
Архитектуры DSP
Числовое представление
Хотя устройства DSP традиционно отдавали предпочтение арифметике с фиксированной запятой, современные процессоры все чаще предлагают арифметику как с фиксированной, так и с плавающей запятой. Числа с плавающей запятой имеют много преимуществ для DSP;
Во-первых, арифметика с плавающей запятой упрощает программирование, облегчая использование языков высокого уровня вместо ассемблера. С устройствами с фиксированной точкой программист должен отслеживать, где находится подразумеваемая двоичная точка. Программист также должен заботиться о правильном масштабировании вычислений, чтобы обеспечить требуемую точность. Это становится очень подверженным ошибкам и трудным для отладки, а также для интеграции.
Числа с плавающей запятой также обеспечивают большую точность. Точность измеряет количество битов, используемых для представления чисел. Точность можно использовать для оценки влияния ошибок из-за целочисленного усечения и округления. Точность числа с плавающей запятой определяется мантиссом. Для 32-битного DSP с плавающей запятой мантисса обычно составляет 24 бита. Таким образом, точность, обеспечиваемая 32-битным DSP с мантиссой 24 бита, по крайней мере, равна точности 24-битного устройства с фиксированной запятой.Большая разница заключается в том, что аппаратное обеспечение с плавающей запятой автоматически нормализует и масштабирует результирующие данные, поддерживая 24-битную точность для всех больших и малых чисел. В DSP с фиксированной точкой программист отвечает за выполнение этой операции нормализации и масштабирования.
Имейте в виду, что устройства с плавающей запятой также имеют некоторые недостатки:
Алгоритмические проблемы. Некоторые алгоритмы, такие как сжатие данных, не требуют точности с плавающей запятой и лучше реализуются на устройствах с фиксированной запятой.
Больше мощности. Устройствам с плавающей запятой требуется больше оборудования для выполнения операций с плавающей запятой, а также автоматической нормализации и масштабирования. Это требует больше места на кристалле для DSP, для работы которого требуется больше энергии.
Меньшая скорость. Из-за большего размера устройства и более сложных операций устройство работает медленнее, чем сопоставимое устройство с фиксированной точкой.
Дороже. Из-за дополнительной сложности DSP с плавающей запятой дороже, чем с фиксированной запятой. При программировании этих устройств следует найти компромисс между стоимостью устройства и стоимостью программиста.
Фундаментальная единица хранения данных в компьютере называется битом или двоичнымцифровым числомt. Немного похож на двусторонний переключатель. Точно так же, как переключатель имеет два состояния (выключено или включено), бит также имеет два состояния (0 или 1). Часто эти два состояния представляют собой значения false или true и реализуются внутри компьютера с использованием низкого или высокого напряжения. Поскольку биты обеспечивают основу для хранения всех данных, неудивительно, что двоичная система счисления очень важна для компьютеров. Если вы не знакомы с двоичными числами, было бы неплохо ознакомиться с этой темой, прежде чем продолжить. (Дополнительную информацию о двоичных числах см. в модуле «Системы счисления».)
Сами по себе биты не очень интересны или полезны. Для хранения более сложных форм данных биты объединяются в более крупные группы, известные как байты. Каждый байт состоит из восьми битов и может использоваться для кодирования таких данных, как числа (целые и действительные числа) или символьные символы. Наиболее распространенная схема, используемая для представления целых чисел, называется дополнением до двух. Используя эту схему, можно представить целые числа от -128 до +127. (Для получения дополнительной информации о дополнении до двух см. урок «Дополнение до двух» в модуле «Системы счисления».) Для действительных чисел компьютеры обычно используют представление с плавающей запятой, подобное тому, которое показано на диаграмме ниже. Имея всего восемь битов, диапазон реальных значений, которые могут быть представлены, очень ограничен. Чтобы решить эту проблему, компьютеры используют два или более байта для представления действительных чисел. Обратите внимание, что приведенные ниже шестнадцать бит разделены на три группы: мантисса, экспонента и два бита знака. Это деление позволяет компьютеру представлять числа с плавающей запятой, такие как .00947, в двоичном эквиваленте научного представления. В этом примере мантисса (1110110011 2 ) соответствует десятичному числу 947 с нулевым битом знака для положительного значения, а показатель степени (0010 2 ) соответствует 2, степень десяти, с одним знаковым битом для отрицательного значения. Обратите внимание, что с 10 битами для представления мантиссы эта схема позволяет использовать только 3 значащие цифры.
Мы также можем назначить определенные комбинации битов для представления общих символов, таких как буквы, знаки препинания и цифры. Одним из очень распространенных представлений этих символов является ASCII, американский стандартный код для обмена информацией. Апплет ниже показывает 16 бит в виде прямоугольников, представляющих два байта компьютерной памяти. Крайний левый бит называется старшим значащим битом, а самый правый бит называется младшим значащим битом. Чтобы увидеть, как целые числа будут храниться в дополнении до двух, введите целое число от -32 768 до 32 767 в поле «Значение», выберите переключатель «Дополнение до двух» и нажмите «Сохранить значение». Чтобы увидеть, как будут храниться действительные числа, введите действительное число с 3 значащими цифрами и показателем степени менее 15, выберите «Плавающая точка» и нажмите «Сохранить значение». Чтобы увидеть, как будут храниться символы ASCII, введите символ с клавиатуры, выберите «ASCII», а затем снова нажмите «Сохранить значение».
Читайте также: