No Image

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

12 373 просмотров
16 декабря 2019

Пример №2 . Представить двоичное число 101.102 в нормализованном виде, записать в 32-битом стандарте IEEE754.
Таблица истинности

Пример №1 .


Перевод из 2 в 8 в 16 системы счисления.
Эти системы кратны двум, следовательно, перевод осуществляется с использованием таблицы соответствия (см. ниже).

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

Пример №2 . 1010111010,1011 = 1.010.111.010,101.1 = 1272,518
здесь 001=1; 010=2; 111=7; 010=2; 101=5; 001=1

При переводе в шестнадцатеричную систему необходимо делить число на части, по четыре цифры, соблюдая те же правила.
Пример №3 . 1010111010,1011 = 10.1011.1010,1011 = 2B12,13HEX
здесь 0010=2; 1011=B; 1010=12; 1011=13

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

Пример №4 .
Пример перевода из двоичной в десятичную систему счисления. Пример перевода из восьмеричной в десятичную систему счисления. Пример перевода из шестнадцатеричной в десятичную систему счисления.

Еще раз повторим алгоритм перевода чисел из одной системы счисления в другую ПСС

  1. Из десятичной системы счисления:
    • разделить число на основание переводимой системы счисления;
    • найти остаток от деления целой части числа;
    • записать все остатки от деления в обратном порядке;
    • Из двоичной системы счисления
      • Для перевода в десятичную систему счисления необходимо найти сумму произведений основания 2 на соответствующую степень разряда;
      • Для перевода числа в восьмеричную необходимо разбить число на триады.
        Например, 1000110 = 1 000 110 = 1068
      • Для перевода числа из двоичной системы счисления в шестнадцатеричную необходимо разбить число на группы по 4 разряда.
        Например, 1000110 = 100 0110 = 4616

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

      Двоичная СС Шестнадцатеричная СС
      0000 0
      0001 1
      0010 2
      0011 3
      0100 4
      0101 5
      0110 6
      0111 7
      1000 8
      1001 9
      1010 A
      1011 B
      1100 C
      1101 D
      1110 E
      1111 F

      Таблица для перевода в восьмеричную систему счисления

      Двоичная СС Восьмеричная СС
      000 0
      001 1
      010 2
      011 3
      100 4
      101 5
      110 6
      111 7

      Пример №2 . Перевести число 100,12 из десятичной системы счисления в восьмеричную систему счисления и обратно. Пояснить причины расхождений.
      Решение.
      1 Этап. Перевод числа из десятичной системы счисления в восьмеричную систему счисления.

      Целая часть от деления Остаток от деления
      100 div 8 = 12 100 mod 8 = 4
      12 div 8 = 1 12 mod 8 = 4 1 div 8 = 0 1 mod 8 = 1

      Остаток от деления записываем в обратном порядке. Получаем число в 8-ой системе счисления: 144
      100 = 1448

      Для перевода дробной части числа последовательно умножаем дробную часть на основание 8. В результате каждый раз записываем целую часть произведения.
      0.12*8 = 0.96 (целая часть 0)
      0.96*8 = 7.68 (целая часть 7)
      0.68*8 = 5.44 (целая часть 5)
      0.44*8 = 3.52 (целая часть 3)
      Получаем число в 8-ой системе счисления: 0753.
      0.12 = 0.7538

      2 Этап. Перевод числа из десятичной системы счисления в восьмеричную систему счисления.
      Обратный перевод из восьмеричной системы счислений в десятичную.

      Для перевода целой части необходимо умножить разряд числа на соответствующую ему степень разряда.
      144 = 8 2 *1 + 8 1 *4 + 8 0 *4 = 64 + 32 + 4 = 100

      Для перевода дробной части необходимо разделить разряд числа на соответствующую ему степень разряда
      0753 = 8 -1 *0 + 8 -2 *7 + 8 -3 *5 + 8 -4 *3 = 0.119873046875 = 0.1199

      144,07538 = 100,9610
      Разница в 0,0001 (100,12 — 100,1199) объясняется погрешностью округлений при переводе в восьмеричную систему счислений. Эту погрешность можно уменьшить, если взять большее число разрядов (например, не 4, а 8).

      Сдающим ЕГЭ и не только…

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

      Например, нужно перевести число 81010 в двоичную систему:

      Результат записываем в обратном порядке снизу вверх. Получается 81010 = 11001010102

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

      В программу ЕГЭ по информатике входят несколько задач, связанных с переводом чисел из одной системы в другую. Как правило, это преобразование между 8- и 16-ричными системами и двоичной. Это разделы А1, В11. Но есть и задачи с другими системами счисления, как например, в разделе B7.

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

      Таблица степеней числа 2:

      2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 2 10
      2 4 8 16 32 64 128 256 512 1024

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

      Таблица двоичных чисел от 0 до 15 c 16-ричным представлением:

      0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
      0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
      0 1 2 3 4 5 6 7 8 9 A B C D E F

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

      Перевод целых чисел

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

      1. Ищем ближайшую к 810 степень двойки, не превосходящую его. Это 2 9 = 512.
      2. Вычитаем 512 из 810, получаем 298.
      3. Повторим шаги 1 и 2, пока не останется 1 или 0.
      4. У нас получилось так: 810 = 512 + 256 + 32 + 8 + 2 = 2 9 + 2 8 + 2 5 + 2 3 + 2 1 .

      Далее есть два способа, можно использовать любой из них. Как легко увидеть, что в любой системе счисления её основание всегда 10. Квадрат основания всегда будет 100, куб 1000. То есть степень основания системы счисления — это 1 (единица), и за ней столько нулей, какова степень.

      Способ 1: Расставить 1 по тем разрядам, какие получились показатели у слагаемых. В нашем примере это 9, 8, 5, 3 и 1. В остальных местах будут стоять нули. Итак, мы получили двоичное представление числа 81010 = 11001010102 . Единицы стоят на 9-м, 8-м, 5-м, 3-м и 1-м местах, считая справа налево с нуля.

      Способ 2: Распишем слагаемые как степени двойки друг под другом, начиная с большего.

      810 =

      2 9 = 1000000000 (1 и девять нулей) +
      2 8 = 100000000 (1 и восемь нулей) +
      2 5 = 100000 (1 и пять нулей) +
      2 3 = 1000 (1 и три нуля) +
      2 1 = 10 (1 и один ноль)

      А теперь сложим эти ступеньки вместе, как складывают веер: 1100101010 .

      Вот и всё. Попутно также просто решается задача «сколько единиц в двоичной записи числа 810?».

      Ответ — столько, сколько слагаемых (степеней двойки) в таком его представлении. У 810 их 5.

      Теперь пример попроще.

      Переведём число 63 в 5-ричную систему счисления. Ближайшая к 63 степень числа 5 — это 25 (квадрат 5). Куб (125) будет уже много. То есть 63 лежит между квадратом 5 и кубом. Тогда подберем коэффициент для 5 2 . Это 2.

      Получаем 6310 = 50 + 13 = 50 + 10 + 3 = 2 * 5 2 + 2 * 5 + 3 = 2235 .

      Ну и, наконец, совсем лёгкие переводы между 8- и 16-ричными системами. Так как их основанием является степень двойки, то перевод делается автоматически, просто заменой цифр на их двоичное представление. Для 8-ричной системы каждая цифра заменяется тремя двоичными разрядами, а для 16-ричной четырьмя. При этом все ведущие нули обязательны, кроме самого старшего разряда.

      Переведем в двоичную систему число 5478.

      5478= 101 100 111
      5 4 7

      Ещё одно, например 7D6A16.

      7D6A16= (0)111 1101 0110 1010
      7 D 6 A

      Переведем в 16-ричную систему число 7368. Сначала цифры запишем тройками, а потом поделим их на четверки с конца: 7368 = 111 011 110 = 1 1101 1110 = 1DE16 . Переведем в 8-ричную систему число C2516. Сначала цифры запишем четвёрками, а потом поделим их на тройки с конца: C2516 = 1100 0010 0101 = 110 000 100 101 = 60458 . Теперь рассмотрим перевод обратно в десятичную. Он труда не представляет, главное не ошибиться в расчётах. Раскладываем число на многочлен со степенями основания и коэффициентами при них. Потом всё умножаем и складываем. E6816 = 14 * 16 2 + 6 * 16 + 8 = 3688 . 7328 = 7 * 8 2 + 3*8 + 2 = 474 .

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

      Здесь нужно учесть, что число будет представлено в дополнительном коде. Для перевода числа в дополнительный код нужно знать конечный размер числа, то есть во что мы хотим его вписать — в байт, в два байта, в четыре. Старший разряд числа означает знак. Если там 0, то число положительное, если 1, то отрицательное. Слева число дополняется знаковым разрядом. Беззнаковые (unsigned) числа мы не рассматриваем, они всегда положительные, а старший разряд в них используется как информационный.

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

      Итак, переведем число -79 в двоичную систему. Число займёт у нас один байт.

      Переводим 79 в двоичную систему, 79 = 1001111. Дополним слева нулями до размера байта, 8 разрядов, получаем 01001111. Меняем 1 на 0 и 0 на 1. Получаем 10110000. К результату прибавляем 1, получаем ответ 10110001 . Попутно отвечаем на вопрос ЕГЭ «сколько единиц в двоичном представлении числа -79?». Ответ — 4.

      Прибавление 1 к инверсии числа позволяет устранить разницу между представлениями +0 = 00000000 и -0 = 11111111. В дополнительном коде они будут записаны одинаково 00000000.

      Перевод дробных чисел

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

      Переведем число 0,6752 в двоичную систему.

      0 ,6752
      *2
      1 ,3504
      *2
      0 ,7008
      *2
      1 ,4016
      *2
      0 ,8032
      *2
      1 ,6064
      *2
      1 ,2128

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

      Получается 0,6752 = 0,101011 .

      Если число было 5,6752, то в двоичном виде оно будет 101,101011 .

      Contents

      Введение

      В повседневной деятельности мы привыкли к счету с применением цифр 1, 2, 3 и т. д. Вследствие технических особенностей, компьютер применяет другой метод счета, в котором используется всего две цифры 0 и 1. Например, до пяти компьютер считает так: 1, 10, 11, 100, 101. Числа 10, 11, 100 . являются двоичными, они базируются на системе счисления, состоящей из двух цифр. Десятичная система состоит из десяти цифр 0 . 9.

      Одно и тоже число можно записать в разных системах счисления. Например: двоичное число 10 соответствует десятичному 2.

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

      Изучение шестнадцатеричной системы счисления мы начнем в специальной программе — DEBUG.EXE, которая входит в состав операционной системы Windows.

      Debug

      Название Debug произошло от слова «Bugs» (насекомые) — так программисты именуют ошибки в программе.

      Используя Debug можно проверить работу программы в пошаговом режиме. Это позволяет найти и исправить возможные ошибки. Данный процесс называется отладка «debugging», отсюда и произошло название программы.

      Термин «debugging» (обезжучивание) имеет глубокие корни — он появился в тот день, когда перестал работать компьютер Гарвардского университета Марк 1. После долгих поисков техники обнаружили небольшую моль, попавшую между контактами реле. Они удалили моль и внесли запись в сменный журнал о процессе под названием «debugging», произведенном над Марком.

      Наиболее удобной средой для изучения Debug является файл-менеджер FAR. Для запуска Debug необходимо в командной строке FAR-а набрать команду «debug» и нажать [Enter]:

      Дефис означает, что Debug ждет команды. Чтобы покинуть программу наберите команду «Q» (Quit — выход) и нажмите ввод:

      Для сложение и вычитание двух шестнадцатеричных чисел используем команду «H» (Hex – шестнадцатеричный), например:

      Debug печатает сумму 3 + 2 = 5 и разность 3 — 2 = 1. С числами от 0 до 9 Debug ведет себя как с десятичными числами. Сходство между шестнадцатеричной и десятичной системами заканчивается при получении результата больше девяти, например 9 + 1:

      A — это шестнадцатеричное число, аналог десятичного числа 10. Выполните вычисления: 9 + 2, 9 + 3, 9 + 4, 9 + 5, 9 + 6. В результате получатся остальные числа: B, C, D, E, F. Такой способ записи чисел является очень компактным и удобным с точки зрения представления информации в компьютере.

      Debug работает только с шестнадцатеричными числами. Некоторые операции с такими числами могут давать не совсем обычные результаты. Например, сложите 8 + 8:

      10 — это шестнадцатеричное число, аналог десятичного числа 16. Теперь найдите разность между числами 2 и 3:

      Разность чисел FFFF — это шестнадцатеричное число, соответствующее единице со знаком минус «-1». Попробуйте получить -2, -3 и другие отрицательные числа.

      Перевод шестнадцатеричных чисел в десятичную форму

      Название «шестнадцатеричный» произошло от числа 16. Цифры 0 . 9 одинаковы и для шестнадцатеричной, и для десятичной систем счисления. Шестнадцатеричные цифры от A до F соответствуют десятичным числам от 10 до 15. Соответствие между десятичными числами (Decimal) и шестнадцатеричными (Hexadecimal) можно представить в виде таблицы:

      dec hex
      0 0
      1 1
      2 2
      3 3
      4 4
      5 5
      6 6
      7 7
      8 8
      9 9
      10 A
      11 B
      12 C
      13 D
      14 E
      15 F
      16 10
      17 11
      18 12
      19 13
      20 14

      Обычно шестнадцатеричные числа помечают специальным символом «h»: 12h, F8h, 10h и др. Это позволяет избегать путаницы между десятичными и шестнадцатеричными числами, не содержащими букв: 12 — десятичное, 12h — шестнадцатеричное.

      Для перевода чисел из hex- в dec- форму используется очень простой алгоритм.
      Например, переведем A7h в десятичную форму:

      1 переводим обе цифры в десятичную форму A => 10
      7 => 7
      2 умножаем каждое число на коэффициент, соответствующий разряду числа (весовой коэффициент) 10 * 16 1 = 160
      7 * 16 0 = 7
      3 складываем полученные числа 160 + 7 = 167

      Шестнадцатеричное число A7h соответствует десятичному числу 167.
      Данный пример можно записать более компактно:

      A => 10 * 16 1 = 160
      7 => 7 * 16 0 = 7 перевод числа A7h в десятичную форму
      A7h = 160 + 7 = 167

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

      Перевод 2E8h в десятичную форму: Перевод AF1Ch в десятичную форму:

      2 => 2 * 16 2 = 512
      E => 14 * 16 1 = 224
      8 => 8 * 16 0 = 8
      2E8h = 512 + 224 + 8 = 744

      A => 10 * 16 3 = 40960
      F => 15 * 16 2 = 3840
      1 => 1 * 16 1 = 16
      C => 12 * 16 0 = 12
      AF1Ch = 40960 + 3840 + 16 + 12 = 44828

      Весовые коэффициенты: Перевод 3B8D2h в десятичную форму:
      16 4 65535 16 3 4096 16 2 256 16 1 16 16 0 1

      3 => 3 * 16 4 = 196608
      B => 11 * 16 3 = 45056
      8 => 8 * 16 2 = 2048
      D => 13 * 16 1 = 208
      2 => 2 * 16 0 = 2
      3B8D2h = 196608 + . + 2 = 243922

      Переведите следующие шестнадцатеричные числа в десятичную форму:

      Сложение и вычитание шестнадцатеричных чисел

      Сложение и вычитание шестнадцатеричных чисел проходит аналогично действиям над десятичными числами.
      Приведем несколько простых примеров:

      Рассмотрим, как получается 1Eh в результате сложения F + F. Запишем результат операции в десятичном виде: F + F = 15 + 15 = 30.

      Проверим, сколько шестнадцатеричных десятков содержится в числе 30: 30 / 16 = 1 (один десяток). Шестнадцатеричный десяток 10h соответствует десятичному числу 16. Проводим вычитание 30 — 16 и получаем остаток 14, откуда: 14 + 16 = Eh + 10h = 1Eh.

      Числа с большим числом разрядов можно складывать «столбиком»:

      Вычислите «столбиком» следующие примеры, а результаты проверьте в Debug:

      Пятизначные шестнадцатеричные числа

      Что произойдет, если в сложении использовать пятизначное шестнадцатеричное число? Вычислим сумму следующих чисел:

      Debug сообщил об ошибке. Команда «h» не может обрабатывать числа, длина которых больше четырех разрядов. Шестнадцатеричное число, состоящее из четырех разрядов называют так: «СЛОВО» или «WORD».

      Если сложить два «слова», например C000h и D000h, то вместо действительного результата 19000h получится «урезанный» до четырех разрядов результат 9000h:

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

      Подумайте, какое значение имеет старший (пятый) разряд при сложении четырехразрядных шестнадцатеричных чисел?

      Перевод десятичных чисел в шестнадцатеричную форму

      Перевод десятичного числа в шестнадцатеричную форму выполняется делением исходного числа на 16. Например, переведем 300 в шестнадцатеричную форму:

      Примеры перевода чисел 1000 и 60000 в шестнадцатеричную форму:

      Переведите следующие числа в шестнадцатеричную форму:

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

      Отрицательные числа

      Ранее было отмечено, что FFFFh фактически равно -1. Однако если перевести число FFFFh в десятичную форму, то получится 65535. Почему так происходит? Действительно ли FFFFh ведет себя как отрицательное число?

      Пусть так, тогда если сложить FFFFh и 5, то должно получиться 4:

      Похоже, Debug действительно обращается с FFFFh, как с -1. Рассмотрим механизм сложения чисел 5 и FFFFh, при суммировании «столбиком»:

      Если игнорировать единицу в старшем разряде, то получается правильный ответ 5 + (-1) = 4. Debug сохраняет четыре младшие цифры результата. Старший (пятый) разряд запоминается в специальной ячейке памяти и называется — «ПЕРЕПОЛНЕНИЕ».

      FFFF -1
      FFFE -2
      FFFD -3
      FFFC -4
      FFFB -5
      FFFA -6
      FFF9 -7
      FFF8 -8
      FFF7 -9
      FFF6 -A
      FFF5 -B
      FFF4 -C
      FFF3 -D
      FFF2 -E
      FFF1 -F
      FFF0 -10

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

      В последнем примере установлено соответствие чисел 8FEFh и -7011h. Как проверить справедливость этого утверждения? Ранее отмечалось, что FFFFh это (-1), значит FFFEh это (-2) и т.д. В приведенной таблице представлен ряд отрицательных чисел. Если ряд продолжить, то при достижении числа 8FEFh мы увидим его отрицательный эквивалент: -7011h

      Любой язык программирования позволяет оперировать двумя типами чисел: знаковыми и беззнаковыми. Представление числа зависит от конкретной ситуации. Например: FFFAh можно рассматривать как число без знака, и как отрицательное число -6. Если в программе нужны отрицательные числа, то диапазон 0 . FFFFh делится на две части:

      Отрицательный аналог числа 8FEFh называется его дополнительным кодом, и выражается числом -7011h. Рассмотрим алгоритм нахождения дополнительного кода:

      1. Инвертировать исходное число, т.е. заменить все цифры числа на противоположные:
        F => 0, E => 1, D => 2, C => 3, B => 4 и т.д. После инверсии 8FEFh выглядит так: 7010h
      2. К инверсному числу добавить единицу: 7010h + 1 = 7011h — получилось искомое число.

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

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

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

      Вычислите дополнительный код следующих чисел:

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

      Микропроцессор, будучи устройством электронным, воспринимает цифры, как комбинации электрических сигналов. Например, число может быть представлено так:

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

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

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

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

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

      Двоичные числа мы будем помечать индексом «b» (binary — двоичный), например: 10010111b

      Рассмотрим число 1101b. Все разряды числа характеризуются весовыми коэффициентами, которые получаются возведением основания системы счисления (два) в степень, соответствующую номеру разряда. Нумерация разрядов начинается с нуля.

      Для перевода числа из двоичной системы в десятичную, необходимо выбрать весовые коэффициенты тех разрядов, где есть единица (в случае числа 1101b, это: 2 3 , 2 2 и 2 0 ). Далее нужно сложить эти числа: 2 3 + 2 2 + 2 0 = 13

      Номера разрядов 3 2 1 0
      Весовые коэффициенты 2 3 2 2 2 1 2 0
      Число 1 1 0 1

      Перевод числа 11010010b в десятичную форму:

      2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0
      1 1 0 1 0 0 1 0
      2 7 + 2 6 + 2 4 + 2 1 = 210

      Переведите следующие двоичные числа в десятичный формат:

      По размеру двоичные числа делятся на следующие:

      Графически это разделение можно показать так:

      bin hex dec
      0000 0 0
      0001 1 1
      0010 2 2
      0011 3 3
      0100 4 4
      0101 5 5
      0110 6 6
      0111 7 7
      1000 8 8
      1001 9 9
      1010 A 10
      1011 B 11
      1100 C 12
      1101 D 13
      1110 E 14
      1111 F 15

      Рассмотрим таблицу, в которой отражено соответствие двоичных, шестнадцатеричных и десятичных чисел.

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

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

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

      Переведите следующие числа в шестнадцатеричную форму:

      Арифметические действия с двоичными числами выполняются аналогично действиям с десятичными числами. Например, сложение одноразрядных двоичных чисел выглядит так:

      Сложение четырехразрядных и восьмиразрядных двоичных чисел:

      Выполните следующие действия:

      (проверку результатов выполните в шестнадцатеричной системе счисления)

      Дополнительный код

      0000 0000 0000 0000 0000h
      . .
      0111 1111 1111 1111 7FFFh
      1000 0000 0000 0000 8000h
      . .
      1111 1111 1111 1111 FFFFh

      Раннее отмечалось, что в некоторых случаях числа 8000h . FFFFh ведут себя как отрицательные.
      Рассмотрим числа 0 . FFFFh в двоичной системе счисления. Данный ряд делится на две равные части. Cтарший бит, в двоичном представлении чисел, выделен жирным шрифтом. Начиная с числа 8000h, старший бит устанавливается в единицу.

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

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

      Ранее мы находили дополнительный код шестнадцатеричных чисел (вспомните инверсию шестнадцатеричного числа с добавлением единицы). Дополнительный код двоичного числа определяется аналогично. Например, найдем дополнительный код числа 1101011010001001:

      Вычитание двоичных чисел, например A — B, сводится к их сложению A + (-B). При этом: A не меняется, B преобразуется в дополнительный код. Далее числа складываются. Например, надо произвести вычитание 1101b — 1010b:

      «>

      Комментировать
      12 373 просмотров
      Комментариев нет, будьте первым кто его оставит

      Это интересно
      No Image Компьютеры
      0 комментариев
      No Image Компьютеры
      0 комментариев
      No Image Компьютеры
      0 комментариев
      No Image Компьютеры
      0 комментариев