Jump to content

Формат номера компьютера

Формат компьютерного номера — это внутреннее представление числовых значений в аппаратном и программном обеспечении цифровых устройств, например в программируемых компьютерах и калькуляторах . [ 1 ] Числовые значения хранятся в виде групп битов , таких как байты и слова. Кодировка числовых значений и битовых комбинаций выбирается для удобства работы компьютера; [ нужна ссылка ] кодировка, используемая набором команд компьютера, обычно требует преобразования для внешнего использования, например, для печати и отображения. Различные типы процессоров могут иметь разные внутренние представления числовых значений, и для целых и вещественных чисел используются разные соглашения. Большинство вычислений выполняется с числовыми форматами, которые помещаются в регистр процессора, но некоторые программные системы позволяют представлять сколь угодно большие числа, используя несколько слов памяти.

Представление двоичного числа

[ редактировать ]

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

Таблица 1: Двоичное преобразование в восьмеричное
Двоичная строка Восьмеричное значение
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
Таблица 2: Количество значений битовой строки.
Длина битовой строки (b) Количество возможных значений (N)
1 2
2 4
3 8
4 16
5 32
6 64
7 128
8 256
9 512
10 1024
...

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

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

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

Группы с определенным количеством битов используются для представления различных объектов и имеют определенные имена.

Байт представления — это битовая строка, содержащая количество битов, необходимое для символа . На большинстве современных компьютеров это восьмибитная строка. Поскольку определение байта связано с количеством битов, составляющих символ, некоторые старые компьютеры использовали для своих байтов другую длину. [ 2 ] Во многих компьютерных архитектурах байт — это наименьшая адресуемая единица , скажем, атом адресуемости. Например, хотя 64-битные процессоры могут адресовать память одновременно по шестьдесят четырем битам, они все равно могут разделить эту память на восьмибитные части. Это называется памятью с байтовой адресацией. Исторически сложилось так, что многие процессоры считывают данные в битах, кратных восьми. [ 3 ] Поскольку размер байта в восемь бит настолько распространен, но определение не стандартизировано, термин октет иногда используется для явного описания восьмибитовой последовательности.

Полубайт . (иногда полубайт ) — это число, состоящее из четырех битов [ 4 ] Будучи полубайтовым , полубайт был назван игрой слов. Для одного укуса человека может потребоваться несколько кусочков чего-либо; аналогично, полубайт является частью байта. Поскольку четыре бита допускают шестнадцать значений, полубайт иногда называют шестнадцатеричной цифрой . [ 5 ]

Отображение восьмеричных и шестнадцатеричных чисел

[ редактировать ]

Восьмеричная и шестнадцатеричная кодировка — удобные способы представления двоичных чисел, используемые компьютерами. Компьютерным инженерам часто приходится записывать двоичные величины, но на практике запись двоичного числа, такого как 1001001101010001, утомительна и подвержена ошибкам. Поэтому двоичные величины записываются в восьмеричном или «восьмеричном» или, что гораздо чаще, шестнадцатеричном (шестнадцатеричном ) числовом формате. В десятичной системе есть 10 цифр от 0 до 9, которые в совокупности образуют числа. В восьмеричной системе всего 8 цифр, от 0 до 7. То есть значение восьмеричного «10» такое же, как десятичное «8», восьмеричное «20» — это десятичное «16», и так на. В шестнадцатеричной системе имеется 16 цифр: от 0 до 9, за которыми по соглашению следуют буквы от A до F. То есть шестнадцатеричная цифра «10» аналогична десятичной цифре «16», а шестнадцатеричная цифра «20» — то же самое, что и десятичная цифра «16». десятичное «32». Пример и сравнение чисел в разных системах счисления описаны в таблице ниже.

При вводе чисел для описания системы счисления используются символы форматирования, например 000_0000B или 0b000_00000 для двоичных чисел и 0F8H или 0xf8 для шестнадцатеричных чисел.

Преобразование между базами

[ редактировать ]
Таблица 3: Сравнение значений в разных базах
Десятичный Двоичный Восьмеричный Шестнадцатеричный
0 000000 00 00
1 000001 01 01
2 000010 02 02
3 000011 03 03
4 000100 04 04
5 000101 05 05
6 000110 06 06
7 000111 07 07
8 001000 10 08
9 001001 11 09
10 001010 12
11 001011 13
12 001100 14
13 001101 15 0D
14 001110 16
15 001111 17

Каждая из этих систем счисления является позиционной системой, но хотя десятичные веса представляют собой степени 10, восьмеричные веса представляют собой степени 8, а шестнадцатеричные веса представляют собой степени 16. Чтобы преобразовать шестнадцатеричную или восьмеричную систему в десятичную, для каждой цифры умножают число. значение цифры по значению ее позиции, а затем складывает результаты. Например:

Представление дробей в двоичном формате

[ редактировать ]

Числа с фиксированной точкой

[ редактировать ]

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

Количество битов, необходимое для желаемой точности и диапазона, должно быть выбрано для хранения дробной и целой частей числа. Например, при использовании 32-битного формата 16 бит можно использовать для целого числа и 16 для дробного.

За битом восьмёрки следует бит четвёрки, затем бит двойки, затем бит единицы. Дробные биты продолжают шаблон, заданный целыми битами. Следующий бит — бит половины, затем бит четверти, затем бит ⅛ и так далее. Например:

целочисленные биты дробные биты
0.500 = 1 / 2 = 00000000 00000000.10000000 00000000
1.250 = ⁠1 + 1 / 4 = 00000000 00000001.01000000 00000000
7.375 = ⁠7 + 3 / 8 = 00000000 00000111.01100000 00000000

Эта форма кодирования не может представлять некоторые значения в двоичном формате. Например, дробь 1 / 5 , 0,2 в десятичном формате, наиболее близкие приближения будут следующими:

13107 / 65536 = 00000000 00000000.00110011 00110011 = 0,1999969... в десятичном формате
13108 / 65536 = 00000000 00000000.00110011 00110100 = 0,2000122... в десятичном формате

Даже если используется больше цифр, точное представление невозможно. Число 1/3 . , записанное в десятичном виде как 0,333333333..., продолжается бесконечно В случае преждевременного прекращения это значение не будет представлять собой 1/3 точно .

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

[ редактировать ]

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

В десятичной системе нам знакомы числа с плавающей запятой вида ( экспоненциальное обозначение ):

1.1030402 × 10 5 = 1.1030402 × 100000 = 110304.02

или, более компактно:

1.1030402E5

что означает «1,1030402 умножить на 1, за которым следуют 5 нулей». У нас есть определенное числовое значение (1,1030402), известное как « мантисса », умноженное на степень 10 (E5, что означает 10). 5 или 100 000), известный как « экспонента ». Если у нас отрицательный показатель степени, это означает, что число умножается на 1, на столько знаков справа от десятичной точки. Например:

2,3434E−6 = 2,3434 × 10 −6 = 2.3434 × 0.000001 = 0.0000023434

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

  • 11-битный двоичный показатель степени в формате «excess-1023». Превышение-1023 означает, что показатель степени отображается как беззнаковое двоичное целое число от 0 до 2047; вычитание 1023 дает фактическое значение со знаком
  • 52-битная мантисса, также беззнаковое двоичное число, определяющее дробное значение с подразумеваемой «1» в начале.
  • знаковый бит, задающий знак числа.

С битами, хранящимися в 8 байтах памяти:

байт 0 С х10 х9 х8 х7 х6 х5 х4
байт 1 х3 х2 х1 х0 м51 м50 м49 м48
байт 2 м47 м46 м45 м44 м43 м42 м41 м40
байт 3 м39 м38 м37 м36 м35 м34 м33 м32
байт 4 м31 м30 м29 м28 м27 м26 м25 м24
байт 5 м23 м22 м21 м20 м19 м18 м17 м16
байт 6 м15 м14 м13 м12 м11 м10 м9 м8
байт 7 м7 м6 м5 м4 m3 м2 м1 м0

где «S» обозначает бит знака, «x» обозначает бит экспоненты, а «m» обозначает бит мантиссы. После того, как биты здесь извлечены, они преобразуются в ходе вычислений:

<знак> × (1 + <дробная мантисса>) × 2 <экспонента> — 1023

Эта схема предоставляет числа, действительные примерно до 15 десятичных цифр, со следующим диапазоном чисел:

максимум минимум
позитивный 1.797693134862231E+308 4.940656458412465E-324
отрицательный -4.940656458412465E-324 -1.797693134862231E+308

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

Некоторые программы также используют 32-битные числа с плавающей запятой. В наиболее распространенной схеме используется 23-битная мантисса со знаковым битом плюс 8-битная экспонента в формате «excess-127», что дает семь допустимых десятичных цифр.

байт 0 С х7 х6 х5 х4 х3 х2 х1
байт 1 х0 м22 м21 м20 м19 м18 м17 м16
байт 2 м15 м14 м13 м12 м11 м10 м9 м8
байт 3 м7 м6 м5 м4 m3 м2 м1 м0

Биты преобразуются в числовое значение с помощью вычислений:

<знак> × (1 + <дробная мантисса>) × 2 <экспонента> — 127

что приводит к следующему диапазону чисел:

максимум минимум
позитивный 3.402823E+38 2.802597Е-45
отрицательный -2.802597E-45 -3.402823E+38

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

32-битное значение с плавающей запятой иногда называют «real32» или «single», что означает «значение с плавающей запятой одинарной точности».

64-битное число с плавающей запятой иногда называют «real64» или «double», что означает «значение с плавающей запятой двойной точности».

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

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

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

Мантисса — это двоичная дробь, которая не обязательно точно соответствует десятичной дроби. Во многих случаях сумма обратных степеней 2 не соответствует определенной десятичной дроби, и результаты вычислений будут немного неверными. Например, десятичная дробь «0,1» эквивалентна бесконечно повторяющейся двоичной дроби: 0,000110011… [ 6 ]

Числа в языках программирования

[ редактировать ]

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

высокого уровня, Языки программирования такие как Ruby и Python, предлагают абстрактные числа, которые могут быть расширенного типа, например рационального , bignum или complex . Математические операции выполняются библиотечными процедурами, предоставляемыми реализацией языка. Данный математический символ в исходном коде путем перегрузки оператора будет вызывать другой объектный код, соответствующий представлению числового типа; математические операции над любым числом — со знаком, без знака, рациональным, с плавающей запятой, с фиксированной запятой, целым или комплексным — записываются одинаково.

Некоторые языки, такие как REXX и Java , предоставляют десятичные операции с плавающей запятой, которые приводят к ошибкам округления другой формы.

См. также

[ редактировать ]

Примечания и ссылки

[ редактировать ]

Первоначальная версия этой статьи была основана на общедоступной статье на сайте Vectorsite Грега Гебеля .

  1. ^ Джон Стоукс (2007). Внутри машины: иллюстрированное введение в микропроцессоры и компьютерную архитектуру . Нет крахмального пресса. п. 66. ИСБН  978-1-59327-104-6 .
  2. ^ «определение байта» . Проверено 24 апреля 2012 г.
  3. ^ «Микропроцессор и ЦП (центральный процессор)» . Сетевой словарь. Архивировано из оригинала 3 октября 2017 года . Проверено 1 мая 2012 г.
  4. ^ «определение куска» . Проверено 3 мая 2012 г.
  5. ^ «Ниббл» . TechTerms.com . Проверено 3 мая 2012 г.
  6. ^ Гебель, Грег. «Компьютерный формат нумерации» . Проверено 10 сентября 2012 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c9ade77e8928ec2d17a51db046ec0b6a__1717612500
URL1:https://arc.ask3.ru/arc/aa/c9/6a/c9ade77e8928ec2d17a51db046ec0b6a.html
Заголовок, (Title) документа по адресу, URL1:
Computer number format - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)