Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Перевод целых чисел в другие системы счисления

Читайте также:
  1. HVLP” и другие аббревиатуры
  2. I. Осознание потребности в реорганизации системы
  3. II. Определение возможного способа разработки системы.
  4. III. Определение параметров новой системы
  5. III. Основные направления функционирования общенациональной системы выявления и развития молодых талантов
  6. III. Составление структурной схемы системы
  7. IV. Анатомия органов сердечно-сосудистой системы

История систем счисления

Представление числовой информации в памяти ЭВМ

Задачи по позиционным системам счисления

Контрольные вопросы и задания

• Дать определение системы счисления. Назвать и охарактеризовать свойства системы счисления.

• Какие символы используются для записи чисел в двоичной системе счисления, восьмеричной, шестнадцатеричной?

• Чему равны веса разрядов слева от точки, разделяющей целую и дробную часть, в двоичной системе счисления (восьмеричной, шестнадцатеричной)?

• Чему равны веса разрядов справа от точки, разделяющей целую и дробную часть, в двоичной системе счисления (восьмеричной, шестнадцатеричной)?

• Преобразуйте следующие десятичные числа в двоичные (восьмеричные, шестнадцатеричные): 0, 1, 18, 25, 128.

• Дешифруйте следующие двоичные числа, преобразовав их в десятичные: 0010, 1011, 11101, 0111, 0101.

• Дешифруйте следующие восьмеричные числа, преобразовав их в десятичные: 777, 375, 111, 1015.

• Дешифруйте следующие шестнадцатеричные числа, преобразовав их в десятичные: 15, A6, 1F5, 63.

 

 

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

Например, число сто три представляется в десятичной системе счисления в виде:

 

Например:

1011002 =

= 1 · 25 + 0 · 24 + 1 · 23 + 1 · 22 + 0 · 21 + 0 · 20 =

= 1 · 32 + 0 · 16 + 1 · 8 + 1 · 4 + 0 · 2 + 0 · 1 =

= 32 + 8 + 4 + 0 = 4410

Перевод из десятичной системы счисления

Целая часть

• Последовательно делить целую часть десятичного числа на основание, пока десятичное число не станет равно нулю.

• Полученные при делении остатки являются цифрами нужного числа. Число в новой системе записывают, начиная с последнего остатка.

Дробная часть

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

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

Пример

переведём в двоичную систему:

44 делим на 2. частное 22, остаток 0

22 делим на 2. частное 11, остаток 0

11 делим на 2. частное 5, остаток 1

5 делим на 2. частное 2, остаток 1

2 делим на 2. частное 1, остаток 0

1 делим на 2. частное 0, остаток 1

Частное равно нулю, деление закончено. Теперь записав все остатки снизу вверх получим число

Возьмём для примера полюбившееся нам число и получим представление этого числа в двоичной системе счисления:

, остаток ;

, остаток ;

, остаток ;

, остаток ;

, остаток .

Что и следовало ожидать, получили: .

Представим число 25 в троичной системе счисления:

, остаток ;

, остаток ;

, остаток .

Получили число: .

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

Восьмеричная система счисления:

, остаток ;

, остаток .

Результат: .

Десятичная система счисления:

, остаток ;

, остаток .

Результат: .

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

Представим это число в виде

.

Посмотрим, что у нас получится при последовательном делении на :

• делим на , получаем и в остатке;

• делим ещё раз на , получаем и в остатке;

• и ещё раз делим на , получаем и в остатке;

• делим в последний раз на , получаем и в остатке.

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

В компьютерной технике очень часто используется двоичная система счисления. Такую систему очень легко реализовать в электронике (кремнии, транзисторах, микросхемах), так как для неё требуется всего два устойчивых состояния (0 и 1).

Двоичная система счисления может быть непозиционной и позиционной системой. В ней используется две цифры: 0 и 1. В железе это может быть реализовано присутствием какого-либо физического явления или его отсутствием. Например: есть электрический заряд или его нет, есть напряжение или нет, есть ток или нет, есть сопротивление или нет, отражает свет или нет, намагничено или ненамагничено, есть отверстие или нет и т. п.

Мы уже знаем, как переводить числа в различные системы счисления. Посмотрим, как это происходит с двоичной системой счисления. Переведём число из двоичной системы счисления в десятичную.

;

Вы это можете проверить на программе-калькуляторе (gcalctool в gnome, Kcalc в KDE, или калькулятор в Windows). Он умеет производить расчёты в двоичной, восьмеричной и шестнадцатиричной системах счисления. Теперь вы знаете, как он это проделывает. Если вы захотите посвятить свою жизнь программированию, то вам часто придётся работать со степенями двойки. Ниже представлена таблица:

Степень Значение
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

Произведём обратное преобразование. Чтобы преобразовать число в десятичном виде к двоичному, нам нужно будет делить всё время на два и смотреть на остаток от деления. Возьмём число 33.

• 33: 2 = 16 остаток 1;

• 16: 2 = 8 остаток 0;

• 8: 2 = 4 остаток 0;

• 4: 2 = 2 остаток 0;

• 2: 2 = 1 остаток 0;

• 1: 2 = 0 остаток 1;

Получили .

Возьмём число 55. Посмотрим, что получится.

• 55: 2 = 27 остаток 1;

• 27: 2 = 13 остаток 1;

• 13: 2 = 6 остаток 1;

• 6: 2 = 3 остаток 0;

• 3: 2 = 1 остаток 1;

• 1: 2 = 0 остаток 1.

Получили .

Ниже приведены ещё примеры со сложением, вычитанием, умножением и делением.

Сложение:

----

Вычитание:

----

Умножение:

----

-------

Деление:

1000110|101

101 -----

---- 0001110

---

---

Программа двоичного представления десятичного числа (Написана на 0108180718001003100000810020000818Си)

#include <stdio.h>

#include <conio.h>

 

void dv(unsigned);

 

int main(int argc, char **argv)

{

unsigned x;

printf("Vvedite chislo > ");

scanf("%d", &x);

dv(x);

 

getch();

return 0;

}

 

void dv(unsigned x)

{

unsigned mask = 1, i;

mask <<= sizeof(unsigned) * 8 - 1;

for(i = 1; i <= sizeof(unsigned) * 8; i++)

{

printf("%c", x & mask? '1': '0');

x <<= 1;

if(!(i % 8))

printf(" ");

}

printf(" \n ");

}

Десятичная система Двоичная система Шестнадцатеричная система
     
     
     
     
     
     
     
     
     
     
    A
    B
    C
    D
    E
    F
     

Пример: сложение двух чисел

1001+1010 = 10011

910+1010 = 1910

0+0 = 0 0-0 = 0 0*0 = 0

1+0 = 1 1-0 = 1 1*0 = 0

0+1 = 1 0-1 = 1 0*1 = 0

1+1 = 1 1-1 = 0 1*1 = 1

Для увеличения или уменьшения двоичного числа на порядок применяются операция сдвига вправо или влево (SRR и SRL)

Пример: Операция SRL

               

преобразуется в

               

Перевод целых чисел в другие системы счисления

Целое число с основанием 10 переводится в систему счисления с основанием 2 путем последовательного деления числа, на основание 2 до получения остатка. Полученные остатки от деления и последнее частное записываются в порядке, обратном полученному при делении. Сформированное число и будет являться числом с основанием N2.

Перевод чисел в десятичную систему осуществляется путем составления степенного ряда с основанием той системы, из которой число переводится. Затем подсчитывается значение суммы.

Пример.

а) Перевести 10101101 с.с.

101011012 = 1*2^7+ 0*2^6+ 1*2^5+ 0*2^4+ 1*2^3+ 1*2^2+ 0*2^1+ 1*2^0 = 173

б) Перевести 7038.

7038 = 7*8^2+ 0*8^1+ 3*8^0= 451

в) Перевести B2E16.

B2E16 = 11*16^2+ 2*16^1+ 14*16^0= 2862

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

Перевод чисел из одной системы счисления в другую составляет важную часть машинной арифметики. Рассмотрим основные правила перевода.

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

При переводе удобно пользоваться таблицей степеней двойки:

Таблица 4. Степени числа 2

n (степень)                      
                     

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

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

При переводе удобно пользоваться таблицей степеней восьмерки:

Таблица 5. Степени числа 8

n (степень)              
             

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

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

При переводе удобно пользоваться таблицей степеней числа 16:

Таблица 6. Степени числа 16

n (степень)              
             

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

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

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

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

Пример. Число перевести в восьмеричную систему счисления.

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

Пример. Число перевести в шестнадцатеричную систему счисления.

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

Пример. Число перевести в восьмеричную систему счисления.

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

Пример. Число перевести в шестнадцатеричную систему счисления.


Дата добавления: 2015-12-08; просмотров: 324 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.024 сек.)