Шестнадцатеричная система счисления — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Шестнадцатеричная система счисления

2017-09-27 395
Шестнадцатеричная система счисления 0.00 из 5.00 0 оценок
Заказать работу

Алфавит: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F (буквы латинского алфавита заменяю недостающие цифры системы счисления и соответствуют числам 10, 11, 12, 13, 14, 15).

Основание S = 16

Базис – степени числа 16: 160, 161, 162, 163, … или 1, 16, 256, 4096, …

Представим любое 16-ричное число через его цифры и веса разрядов:

A5D16 = D×160 + 5×161 + A×162 = 13×1 + 5×16 + 10×256 = 265310

Этим же способом любое 16-ричное число переводится в десятичную систему счисления.

Обратный перевод – из десятичной в 16-ричную систему счисления – осуществляется последовательным деление десятичного числа на основание 16-ричной системы счисления 16 и считыванием остатков от деления справа налево:

2653/16 = 165 остаток 13, то есть D

165/16 = 10 остаток 5

10/16 = 0 остаток 10, то есть A, получаем A5D16.

 

Особый случай перевода – двоично-шестнадцатеричный

Для перевода двоичного числа в 16-ричное необходимо:

1. разбить двоичное число справа налево по четыре цифры (недостающие слева дополнить нулями):

100110001012 = 0100 1100 01012

2. каждую четверку цифр представить числом в 16-ричной системе счисления:

0100 1100 01012 = 4C516

4 12=C 5

Для перевода 16-ричного числа в двоичное необходимо каждую цифру 16-ричного числа представить ее четырехразрядным двоичным эквивалентом:

A5D16 = 1010 0101 11012

A 5 D

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

10-я                                
2-я                                
16-я                     A B C D E F

 

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

Таблица сложения двоичной системы счисления состоит из четырех строк:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10 (ноль в младшем разряде и единица переноса в старшем)

 

Сложим два двоичных числа:

Переносы

10110110012

+

1110110112

-------------

100101101002

Вычтем одно двоичное число из другого, притом в старшем разряде при необходимости занимаем две единицы младшего:

10111110012

-

1110110112

-------------

1000111102

 

Результат вычитания можно проверить обратным сложением:

1000111102

+

1110110112

-------------

10111110012

 

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

 

Они выполняются по знакомым нам правилам вычислений в десятичной системе счисления, за исключением того, что старшая цифра не 9, а 7:

Перенос

5638

+

528

-----

6358

 

Рассмотрим образование следующей суммы:

68

+

58

---

138

Добавляем к первому слагаемому недостающее число до 8 – основания системы счисления. Это число 2, которое мы берем из второго слагаемого. Во втором слагаемом остается 3, которое и записывается в этот разряд, а единица переноса уходит в старший разряд суммы.

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

5238

-

528

-----

4518

 

Арифметические операции в 16-ричной системе счисления

Они выполняются по знакомым нам правилам вычислений в десятичной системе счисления, за исключением того, что старшая цифра не 9, а F (15):

Перенос

9DA16

+

8216

-----

A5C16

 

Рассмотрим образование следующей суммы:

D16

+

816

---

1516

Добавляем к первому слагаемому (D=13) недостающее число до 16 – основания системы счисления. Это число 3, которое мы берем из второго слагаемого. Во втором слагаемом остается 5, которое и записывается в этот разряд, а единица переноса уходит в старший разряд суммы.

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

A5C16

-

8216

-----

9DA16

 

 

Приложение 3

Ошибки при компиляции

Номер ошибки Сообщение Значение
  Out of memory Выход за границы памяти
  Identifier expected Не указан идентификатор. На этом месте должен находиться идентификатор
  Unknown identifier Неизвестный идентификатор. Идентификатор не был описан
  Duplicate identifier Повторный идентификатор. Идентификатор уже описан
  Syntax error Синтаксическая ошибка. В исходном тексте найден неверный символ
  Error in real constant Ошибка в вещественной константе
  Error in integer constant Ошибка в константе целого типа
  String constant exceeds line Строковая константа превышает допустимые размеры строки
  Too many nested files Слишком много вложенных файлов
  Unexpected end of file Некорректный конец файла
  Line too long Слишком длинная строка
  Type identifier expected Требуется идентификатор типа
  Too many open files Слишком много открытых файлов
  Invalid file name Неверное имя файла. Имя файла неверно или указывает на несуществующий путь
  File not found Файл не найден
  Disk full Диск заполнен
  Invalid compiler directive Неверная директива компилятора
  Too many files Слишком много файлов. В компиляции программы или программного модуля задействовано слишком много файлов
  Variable identifier expected Требуется идентификатор переменной
  Error in type Ошибка в определении типа. Определение типа не может начинаться с этого символа
  Structure too large Слишком большая структура. Максимальный размер структурного типа - 64К
  Set base type out of range Базовый тип множества вышел за границы. Базовый тип множества должен представлять собой отрезок порядкового типа с границами 0…255 или перечисляемый тип с не более чем 256 значениями
  File components may not be files or objects Компоненты файла не могут быть файлами или объектами
  Invalid string length Неверная длина строки. Максимальная описываемая длина строки – 255 символов
  Type mismatch Несоответствие типов
  Invalid subrange base type Неверный базовый тип диапазона. Диапазон можно описывать для данных порядкового типа
  Lower bound greater than upper bound Нижняя граница больше верхней
  Ordinal type expected Требуется порядковый тип. Действительный, строковый, структурный и указательный типы в данном случае недопустимы
  Integer constant expected Требуется целая константа
31 Constant expected Требуется константа
  Integer or real constant expected Требуется целая или вещественная константа
  Pointer type identifier expected Требуется идентификатор типа указателя
  Invalid function result type Неверный тип результата функции. Правильными типами результатами функции являются все простые, строковые и ссылочные типы
  Begin expected Требуется слово Begin
  End expected Требуется слово End
  Integer expression expected Требуется выражение целого типа
  Ordinal expression expected Требуется выражение порядкового типа
  Boolean expression expected Требуется выражение логического типа
  Operand types do not match operator Типы операндов не соответствуют типу оператора
  Error in expression Ошибка в выражении
  Illegal assignment Неверное присваивание
  Object file too large Объектный файл слишком большой – больше 64 К
  Code segment too large Сегмент кода слишком большой – больше 64 К
  Data segment too large Сегмент данных слишком большой – больше 64 К
  Do expected Требуется слово Do
  OF expected Требуется слово Of
  INTERFACE expected Требуется интерфейсный раздел
  THEN expected Требуется слово Then
  TO or DOWNTO expected Требуется слово To или DownTo
  Division by zero Деление на ноль
  Invalid file type Неверный файловый тип
  Cannot Read or Write variables of this type Нельзя считать или записать переменные данного типа
  Pointer variable expected Требуется использовать переменную-указатель
  String variable expected Требуется строковая переменная
  String expression expected Требуется выражение строкового типа
  Circular unit reference Циклическая ссылка на модуль. В интерфейсном разделе два модуля не могут ссылаться друг на друга
  Unit name mismatch Несоответствие имен программных модулей. Имя программного модуля, найденное в файле .tpu, не соответствует имени, указанному в операторе Uses
  Implementation expected Требуется раздел реализации – отсутствует ключевое слово Implementation
  Constant and case types do not match Типы констант (меток) и тип выражения (переключателя) оператора Case не соответствуют друг другу
  Record variable expected Требуется переменная типа запись
  Constant out of range Константа выходит за границы допустимых значений
  File variable expected Требуется файловая переменная
  Pointer expression expected Требуется выражение типа указатель
  Integer or real expression expected Требуется выражение целого или вещественного типа
  Label already defined Метка уже определена
  Undefined label in processing statement part Неопределенная метка в обрабатываемом разделе операторов
  Unit expected Требуется слово Unit
  ‘;’ expected Требуется ‘;’
  ‘:’ expected Требуется ‘:’
  ‘,’ expected Требуется ‘,’
  ‘(’ expected Требуется ‘(’
  ‘)’ expected Требуется ‘)’
  ‘=’ expected Требуется ‘=’
  ‘:=’ expected Требуется ‘:=’
  ‘[’or ‘(‘ expected Требуется ‘[’ или ‘(‘
  ‘]’or ‘)‘ expected Требуется ‘]’ или ‘)‘
  ‘.’ expected Требуется ‘.’
  ‘..’ expected Требуется ‘..’
  Too many variables Слишком много переменных
  Invalid FOR control variable Недопустимый параметр цикла For – должен быть только порядкового типа
  Integer variable expected Требуется переменная целого типа
  Files are not allowed here Здесь не допускаются файлы
  String length mismatch Несоответствие длины. Длина строковой константы не соответствует количеству элементов символьного массива
  String constant expected Требуется константа строкового типа
  Integer or real variable expected Требуется переменная целого или вещественного типа
  Ordinal variable expected Требуется переменная порядкового типа
  Character expression expected Предшествующее выражение должно иметь символьный тип
  Overflow in arithmetic operation Переполнение при выполнении арифметической операции – результат операции вышел за диапазон LongInt
  No enclosing FOR, WHILE or REPEAT statement Процедуры Break и Continue не могут использоваться вне операторов циклов
  CASE constant out of range Метки оператора Case выходят за диапазон -32768…32767
  Too many symbols Слишком много идентификаторов – программа описывает более 64 К идентификаторов
  Statement part too large Слишком большой раздел операторов – более 24 К
  Cannot evaluate this expression Невозможно вычислить данное выражение
  Structured variable are not allowed here Не допускается использование структурной переменной
  Invalid floating-point operation Недопустимая операция с плавающей точкой – получено переполнение или деление на ноль
  Too many nested scopes Слишком большая вложенность
  File access denied Файл недоступен. Файл не может быть открыт или создан
  Object type expected Требуется объектный тип

 

Ошибки времени выполнения

а) Ошибки системы MS-DOS

Номер ошибки Сообщение Значение
  File not found Файл не найден
  Path not found Путь к файлу не найден
  Too many open files Слишком много открытых файлов
  File access denied Нет доступа УК файлу
  Invalid driver number Некорректный номер дискового устройства
  No more files Нет файлов

 

б)Ошибки ввода-вывода

При включенной директиве {$I-} номер ошибки ввода-вывода возвращается функцией IOResult

Номер ошибки Сообщение Значение
  Disk read error Ошибка чтения диска
  Disk write error Ошибка записи на диск
  File not assigned Файл не назначен. Файловой переменной не поставлено в соответствие имя файла
  File not open Файл не открыт
  File not open for input Файл не открыт для ввода
  File not open for output Файл не открыт для вывода
  Invalid numeric format Неверный числовой формат – вместо чисел вводятся данные других типов

 

в)Критические ошибки

Номер ошибки Сообщение Значение
  Disk is write protected Диск защищен от записи
  Unknown unit Неизвестный модуль
  Disk not ready Дисковое устройство не готово к работе
  Unknown command Неопознанная команда
  Device write fault Ошибка при записи на устройство
  Device read fault Ошибка при чтении с устройства
  Hardware failure Сбой в оборудовании

 

г)Фатальные ошибки

Номер ошибки Сообщение Значение
  Division by zero Деление на ноль
  Range check error Выход за пределы допустимых значений
  Stack overflow error Переполнение стека
  Invalid pointer operation Некорректная операция ссылки
  Floating point overflow Переполнение при выполнении операции с плавающей запятой
  Floating point underflow Исчезновение порядка при выполнении операции с плавающей запятой
  Invalid floating point operation Недопустимая операция с плавающей запятой
  Object not initialized Объект не инициализирован
  Arithmetic overflow Арифметическое переполнение

 

 


Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

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

Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.044 с.