Главная страница
Навигация по странице:

  • Двоичное кодирование целых чисел

  • Двоичное кодирование действительных чисел

  • Представление и обработка текстовых символов

  • Способы кодирования текста

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

  • Методичка. Учебное пособие В. М. Лопатин издание второе, стереотипное 1 17


    Скачать 4.33 Mb.
    НазваниеУчебное пособие В. М. Лопатин издание второе, стереотипное 1 17
    АнкорМетодичка
    Дата10.01.2023
    Размер4.33 Mb.
    Формат файлаpdf
    Имя файлаLopatin_Informatika-dlya-inzhenerov_RuLit_Me_691929.pdf
    ТипУчебное пособие
    #879085
    страница3 из 16
    1   2   3   4   5   6   7   8   9   ...   16
    Перевод чисел из одной системы счисления в другую
    Развернутая форма записи числа используется для перевода чисел в десятич- ную систему счисления. Обратный перевод из десятичной системы в двоичную и другие системы осуществляется с помощью поэтапного деления числа на ос- нование системы счисления с определением остатка от целочисленного деления.
    В табл. 5 в качестве примера показан процесс перевода десятичного числа 204 в двоичную, восьмеричную и шестнадцатеричную системы. Стрелкой показаны порядок считывания и записи остатков от целочисленного деления.
    При переводе дробного десятичного числа в двоичную систему отдельно пе- реводится целая и дробная часть. Целая часть переводится путем подсчета остат- ков поэтапного целочисленного деления на 2, а дробная – путем подсчета целых частей при поэтапном умножении на 2.
    Пример перевода дробного числа в двоичную систему счисления – в табл. 6.
    Таблица 5
    Перевод целого числа из десятичной системы счисления
    Двоичная
    Восьмеричная
    Шестнадцатеричная
    204 : 2 = 102 + 0 102 : 2 = 51 + 0 51 : 2 = 25 + 1 25 : 2 = 12 + 1 12 : 2 = 6 + 0 6 : 2 = 3 + 0 3 : 2 = 1 + 1 1 : 2 = 0 + 1 204 : 8 = 25 + 4 25 : 8 = 3 + 1 3 : 8 = 0 + 3 204 : 16 = 12 + 12 12 : 16 = 0 + 12 204 10
    =11001100 2
    204 10
    =314 8
    204 10
    = СС
    16
    Для перевода чисел между системами с основанием 2, 8 или 16 используют замену двоичных цифр на их восьмеричные или шестнадцатеричные эквива- ленты. Замену производят на основе данных, представленных в табл. 7.
    Для перевода целого двоичного числа в восьмеричное сначала число разби- вают справа налево на группы по три цифры (триады), а затем каждой группе присваивают ее восьмеричный эквивалент.
    Аналогично поступают с шестнадцатеричным числом, которое разбивают на группы по четыре цифры (тетрады). Примеры перевода чисел из восьмеричной и шестнадцатеричной систем в двоичную и обратно показаны в табл. 8.
    5 / 17

    23
    Таблица 6
    Перевод дробного числа из десятичной системы счисления
    Целая часть
    Дробная часть
    45 : 2 = 22 + 1 22 : 2 = 11 + 0 11 : 2 = 5 + 1 5 : 2 = 2 + 1 2 : 2 = 1 + 0 1 : 2 = 0 + 1 0,75 * 2 = 1, 5 = 1 + 0,5 0,5 * 2 = 1 + 0 45 10
    = 101101 2
    0,75 10
    = 11 2
    45,75 10
    =101101,11 2
    Таблица 7
    Соответствие между целыми числами в разных системах счисления
    Dec
    q = 10
    Bin
    q = 2
    Oct
    q = 8
    Hex
    q = 16 0
    0000 0
    0 1
    0001 1
    1 2
    0010 2
    2 3
    0011 3
    3 4
    0100 4
    4 5
    0101 5
    5 6
    0110 6
    6 7
    0111 7
    7 8
    1000 10 8
    9 1001 11 9
    10 1010 12
    A
    11 1011 13
    B
    12 1100 14
    C
    13 1101 15
    D
    14 1110 16
    E
    15 1111 17
    F
    6 / 17

    24
    Таблица 8
    Примеры перевода чисел с основанием q = 2, 8,16
    Перевод числа 1325 8 в двоичную систему
    Восьмеричные цифры
    1 3
    2 5
    Двоичные триады
    001 011 010 101
    Результат
    1325 8
    = 1011010101 2
    Перевод числа 101010110 2
    в восьмеричную систему
    Двоичные триады
    000 101 010 110
    Восьмеричные цифры
    0 5
    2 6
    Результат
    101010110 2
    =526 8
    Перевод числа 12BD
    16
    в двоичную систему
    Шестнадцатеричные цифры
    1 2
    B
    D
    Двоичные тетрады
    0001 0010 1011 1101
    Результат
    12BD
    16
    = 1001010111101 2
    Перевод числа 10001110101100 2
    в шестнадцатеричную систему
    Двоичные тетрады
    0010 0011 1010 1100
    Шестнадцатеричные цифры
    2 3
    A
    C
    Результат
    10001110101100 2
    =23AC
    16
    Приведенные примеры показывают, что восьмеричную и шестнадцатерич- ную системы удобно использовать в качестве вспомогательных систем для пред- ставления двоичных чисел, в частности, для компактной записи двоичных кодов.
    Двоичная система занимает особое место среди позиционных систем, по- скольку является основной системой в вычислительной технике. Преимущество двоичной системы обеспечивается простотой технической реализации, так как технические элементы зачастую существуют в двух возможных состояниях.
    В качестве примеров можно привести противоположные состояния некого физи- ческого объекта: намагниченное или размагниченное, отражающее свет или по- глощающее, пропускающее электрический ток или не пропускающее. Каждому из двух возможных состояний элемента можно присвоить значения 0 и 1 и назвать этот технический элемент ячейкой, в которой можно хранить 1 бит данных.
    Если количество ячеек, в каждой из которых можно хранить 1 бит, увеличи- вать, то возможности по числу представляемых или кодируемых значений будут существенно вырастать. Одним битом могут быть выражены два значения:
    0 или 1, двумя битами – 4 значения: 00, 01, 10, 11, тремя битами – 8 значений:
    7 / 17

    25 000, 001, 010, 100, 011, 101, 110, 111. Далее количество возможных значений вы- растает в геометрической прогрессии (табл. 9).
    Таблица 9
    Возможности представления данных в системе двоичного кодирования
    Количество бит
    1 2
    3 4
    5 6
    7 8
    Количество кодируе- мых значений
    2 4
    8 16 32 64 128 256
    Математическая зако- номерность роста
    2 1
    2 2
    2 3
    2 4
    2 5
    2 6
    2 7
    2 8
    В общем виде количество представляемых или кодируемых значений N мо- жет быть рассчитано по формуле
    2
    m
    N
    =
    , где m – число разрядов в системе двоичного кодирования.
    Из табл. 9 видно, что с помощью 1 байта, состоящего из 8 бит (m = 8), можно закодировать 256 значений. Если таблицу продолжить, то при m = 10 количество кодируемых значений N будет равно 1024.
    Двоичное кодирование целых чисел
    Кодирование целого числа осуществляют простым переводом этого числа в двоичную систему счисления. При этом возможны 3 формы записи двоичного числа:
    − прямой код – используют для положительных чисел и получают простым переводом числа в двоичный код;
    − обратный код – используют при кодировании отрицательных чисел, по- лучают инвертированием всех двоичных чисел прямого кода за исключением первой, указывающей знак числа;
    − дополнительный код – прибавляют единицу к значению обратного кода целого отрицательного числа.
    Обратный и дополнительный коды используются для представления отрица- тельных чисел, что позволяет заменить машинное вычитание на более быструю операцию сложения. Кроме формы записи большое значение имеет длина кода или количество разрядов в записи двоичного числа. При простом математиче- ском переводе длина кода равна количеству знаков в двоичной записи числа. Для записи полученного кода в вычислительной системе необходимо учитывать ограничения, связанные с машинным представлением. Например, при записи в
    2-байтовой машинной системе любое число должно быть представлено не более чем 16 разрядами, а в 4-байтовой – 32 разрядами.
    Для примера рассмотрим представление числа 1607 в 2-байтовой (16-разрядной) машинной ячейке. Воспользуемся при этом равенством 1607 10
    = 11001000111 2
    . Ре- зультаты перевода и представления числа в ячейке памяти приведены в табл. 10.
    8 / 17

    26
    Таблица 10
    Перевод целого числа в двоичный машинный код
    Представление
    Число
    Десятичное
    1607
    Двоичное в прямом коде
    11001000111
    Машинное в 16-разрядном прямом коде
    0000 0110 0100 0111
    Обратный код
    0111 1001 1011 1000
    Дополнительный код
    0111 1001 1011 1001
    Для физического представления целого числа в ячейках памяти используется разрядная сетка. Число 1607, например, в 16-разрядной сетке представляется сле- дующим образом (табл. 11).
    Таблица 11
    Разрядная сетка
    Номер разряда
    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
    Значение разряда
    0 0
    0 0
    0 1 1 0 0 1 0 0 0 1 1 1
    Число заносится в разрядную сетку справа налево, при этом свободные раз- ряды заполняются нулями. В старшем разряде сетки представляются данные о знаке числа: ноль соответствует положительному значению, единица – отрица- тельному.
    Основной недостаток системы кодирования целых чисел – возможность пе- реполнения разрядной сетки для больших значений чисел.
    Двоичное кодирование действительных чисел
    Действительными или вещественными числами (в отличие от целых) называ- ются числа, имеющие дробную часть. Для кодирования действительного числа и сохранения его в памяти каждое число преобразуют следующим образом:
    − представляют число R как произведение мантиссы m (|m| < 1) на основание системы счисления q, возведенное в целую степень p (р называют порядком или характеристикой); для представления числа используют формулу
    p
    R m q
    = ⋅
    ;
    − полученные значения мантиссы и порядка переводят в двоичный код;
    − двоичный код разбивают на группы, число разрядов в группе определяют равным четырем, восьми или десяти байтам.
    Такой способ записи чисел называется нормализованным, или представле- нием с плавающей точкой. Последовательность преобразования действитель- ного числа в двоичную форму показана в табл. 12. Из таблицы видно, как ука- занное число сохраняется в машинных ячейках.
    9 / 17

    27
    Таблица 12
    Перевод действительного числа в двоичный машинный код
    Представление
    Число
    Десятичное
    12,34
    Десятичное нормализованное
    0,1234×10 2
    Двоичное
    10011010010 10
    Двоичное в машинном коде
    0000 0010 0000 0100 1101 0010
    В разрядной сетке для действительного числа отводятся отдельные группы разрядов для мантиссы, порядка, знака числа и знака порядка. Структура разряд- ной сетки принимает при этом вид, показанный на рис. 5.
    Рис. 5. Структура разрядной сетки для записи действительного числа
    В представленной структуре можно менять соотношение между числом раз- рядов для записи порядка и мантиссы. Чем больше разрядов отводится под за- пись мантиссы, тем выше точность представления числа. Чем больше разрядов занимает порядок, тем шире диапазон представляемых чисел.
    Представление и обработка текстовых символов
    Первоначально вычислительные машины создавались исключительно для об- работки численных данных. По мере совершенствования вычислительной тех- ники числовые данные стали дополняться текстовыми комментариями, которые со временем преобразовались в электронные текстовые документы. С 80-х гг. прошлого века текстовые документы, созданные в электронной форме, стали ак- тивно вытеснять традиционные машинописные документы. С появлением ком- пьютеров новая технология создания текстовых документов окончательно закре- пилась и компьютеры стали широко использоваться для создания, обработки и хранения текстовых данных. порядок мантисса
    10 / 17

    28
    Способы кодирования текста
    Компьютерное представление текста связано с системой его кодирования, по- этому для представления текста нужно знать систему кодирования и декодиро- вания текстовых символов.
    Кодировать языковую речь можно различными способами: письменно, же- стами или сигналами любой другой природы (светофор, телефонные звонки).
    Чаще всего кодированию подвергаются тексты на естественных языках. Для естественных языков существуют различные способы кодирования, остановимся на некоторых характерных и используемых на практике способах.
    1. Графический способ – основан на использовании специальных рисунков или знаков. Пример графического кодирования описан в литературном произве- дении Артура Конана Дойла «Пляшущие человечки», где для шифрования сооб- щений использовалась последовательность пляшущих человеческих фигурок
    (рис. 6).
    Рис. 6. Таблица кодов «Пляшущие человечки»
    Пользуясь ключом к данному шифру, можно прочесть закодированную фразу:
    Другим примером графического кодирования является азбука Морзе, создан- ная американским изобретателем Самюэлем Морзе в 1837 г. для телеграфиче- ского кодирования сообщений. В азбуке Морзе каждая буква представлена ком- бинацией точек и тире (табл. 13). До настоящего времени в мореходной практике может использоваться сигнал бедствия SOS (…− − − …), несмотря на существо- вание автоматизированных систем оповещения о бедствии.
    11 / 17

    29
    Таблица 13
    Графические коды азбуки Морзе
    Аналоги букв латиницы и кириллицы, близкие по звучанию
    Аналоги букв лати- ницы и кириллицы, различные по звучанию
    Лат.
    Символ
    Морзе
    Кир. Лат.
    Символ
    Морзе
    Кир. Лат.
    Символ
    Морзе
    Кир.
    A

    А
    L
    • – • •
    Л
    Q
    – – • –
    Щ
    B
    – • • •
    Б
    M
    – –
    М
    V
    • • • –
    Ж
    C
    – • – •
    Ц
    N
    – •
    Н
    X
    – • • –
    Ь
    D
    – • •
    Д
    O
    – – –
    О
    Y
    – • – –
    Ы
    E

    Е
    P
    • – – •
    П
    Нет аналогов
    F
    • • – •
    Ф
    R
    • – •
    Р
    – – – •
    Ч
    G
    – – •
    Г
    S
    • • •
    С
    – – – –
    Ш
    H
    • • • •
    Х
    T

    Т
    • – – • – •
    Ъ
    I
    • •
    И
    U
    • • –
    У
    • • – • •
    Э
    J
    • – – –
    Й
    W
    • – –
    В
    • • – –
    Ю
    K
    – • –
    К
    Z
    – – • •
    З
    • – • –
    Я
    2. Символьный способ– на основе символов (букв) того же алфавита, что и исходный текст. Способ используется в криптографии при создании шифрован- ных сообщений. Одним из первых применений способа является кодирование английского алфавита, предложенное в 1580 г. Фрэнсисом Бэконом [9]. Шифр
    Бэкона (табл. 14) выполнен на основе двоичного 5-разрядного кода, состоящего из букв А и В. Для создания сообщений на основе предложенной Бэконом си- стемы требуется двухсимвольный алфавит, при этом длина самого сообщения возрастает в 5 раз, поскольку каждая буква заменяется набором из 5 символов.
    Таблица 14
    Кодирование английского алфавита a
    AAAAA g
    AABBA n
    ABBAA t
    BAABA b
    AAAAB h
    AABBB j
    ABBAB v
    BAABB c
    AAABA i
    ABAAA p
    ABBBA w
    BABAA d
    AAABB k
    ABAAB q
    ABBBB x
    BABAB e
    AABAA l
    ABABA r
    BAAAA y
    BABBA f
    AABAB m
    ABABB s
    BAAAB z
    BABBB
    12 / 17

    30 3. Числовой способ – основан на кодировании символов с помощью чисел.
    Широкое распространение способ получил в связи с созданием и развитием элек- тронно-вычислительных машин. В ЭВМ для кодирования букв используется два числа: 0 и 1. В отличие от шифра Бэкона, где достаточно 5-разрядного представ- ления, в компьютерной технике принято 8-разрядное, или 8-битовое, представ- ление символов. Последовательность из 8 бит образует 1 байт, байт используется для кодирования одного символа. С помощью одного байта путем смены после- довательности записи нулей и единиц можно закодировать 256 различных сим- волов.
    Кодирование компьютерных символов
    Система числового кодирования компьютерных символов принята на между- народном уровне и построена следующим образом.
    1. Каждому символу, обозначенному на клавиатуре компьютера, присваива- ется двоичный восьмиразрядный код. Последовательность символов и их кодов формируется в кодировочную таблицу под названием ASCII (American Standard
    Code for Information Interchange) – американский стандартный код для обмена информацией.
    2. В таблице ASCII все кодируемые символы делятся на две группы, в первую из которых (базовую) включается 128 символов (от 0 до 127) стандартного, или неизменяемого, кода, а во вторую (расширенную) – следующие 128 символов (от
    128 до 255), которые относятся к расширяемой или изменяемой части кода
    (табл. 15).
    3. В первой базовой группе кодируются буквы латинского алфавита, араб- ские цифры, математические знаки, знаки препинания и др. Кодировка первой группы символов является международной и обязательной для всех компьюте- ров, участвующих в процессе глобального обмена информацией.
    4. Вторая группа из 128 символов предоставлена для кодирования националь- ных или специальных алфавитов, а также некоторых графических символов.
    Национальный алфавит русского языка (а также украинского, белорусского, бол- гарского) известен всему миру под названием кириллица.
    Таблица 15
    Представление символов в кодовой таблице ASCII
    Базовая группа (0–127)
    Расширенная группа (128–255)
    Управляющие коды
    Национальные и специальные алфавиты; алфавиты в России, Украине, Белоруссии,
    Сербии, Болгарии – кириллица
    Латинский алфавит (26 букв)
    Арабские цифры
    Математические знаки
    Знаки препинания
    13 / 17

    31
    С появлением компьютеров кириллица была закодирована на основе расши- ренной группы символов, исторически сложилось 6 способов кодировки кирил- лицы, различные версии кодировки появлялись одна за другой в процессе разви- тия компьютерной техники. Со временем некоторые кодировки исчезли из упо- требления, к действующим относятся 4 вида кодировок (табл. 16).
    Первые из трех приведенных в таблице кодировок выполнены в однобайто- вом формате, а кодировка Unicode, принятая в конце 1990-х, имеет 2-байтовый формат. Кодировка Unicode отличается от предыдущих версий широкими коли- чественными возможностями, поскольку число возможных вариантов кодирова- ния возрастает до 2 16
    = 65536, но длина текстового сообщения увеличивается при этом в два раза. Расширенная кодировка может использоваться для представле- ния большинства языков на планете Земля, в том числе для кириллицы.
    Таблица 16
    Виды кодировок кириллицы
    Наименова- ние
    Назначение
    СP 1251 для работы под операционной системой Windows
    KOИ8-Р для представления кириллических текстов в сети Интернет
    ISO-8859 для представления кириллических текстов в соответствии с международным стандартом
    Unicode для расширения возможностей по числу кодируемых симво- лов и алфавитов
    Наличие многих кодировок кириллицы может создавать трудности по пере- ходу из одной кодировки в другую. Для перехода между кодировками использу- ются специальные программы, которые называются текстовымиконверто-
    рами. Современные конверторы способны самостоятельно определять исходную кодировку текста, расшифровывать текст и представлять его на естественном языке.
    1   2   3   4   5   6   7   8   9   ...   16


    написать администратору сайта