Сергей Сергеевич
Лебедев


Меню сайта
Наш опрос
Какими операционными системами Вы пользуетесь
Всего ответов: 100
GamesЫ

Даты проведения уроков

[21/12/2009] [25/12/2009] [07/01/2010] 

Заметили ошибку, нажмите здесь и напишите мне об этой ошибке



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


Краткие сведения
Универсальным способом перевода чисел в позиционных системах счисления является разложение числа в ряд по степеням. Рассмотрим способы перевода чисел из десятичной системы счисления в р-ичную и обратно.

A10 → ... p

1 СПОСОБ

  • Исходное десятичное число (А) необходимо записать суммой максимальных степеней основания новой системы счисления (р).
  • В разложении обязательно должны присутствовать все степени числа р от максимальной до минимальной.
  • Коэффициенты перед неотрицательными степенями будут целой частью, а перед отрицательными - дробной частью записи числа в новой системе счисления.
Рассмотрим пример:
211,12510 → ... 2
  • 211,125 = 27 + 26 + 24 + 21 + 20 + 2-3
  • 211,125 = 1*27 + 1*26 + 0*25 + 1*24 + 0*23 + 0*22 + 1*21 + 1*20 + 0*2-1 + 0*2-2 + 1*2-3
  • (Недостающие слагаемые мы добавили, умножив их на 0)
  • 211,12510 = 11010011,0012

2 СПОСОБ (алгоритм Евклида)

  • Целую часть десятичного числа (А) и полученные частные делят на основание новой системы счисления (р) с остатком пока частное не станет равно нулю.
  • Все остатки от деления, записанные в обратном порядке будут целой частью числа в новой системе счисления.
  • Дробную часть десятичного числа (А) и полученные произведения умножают на основание новой системы счисления (р), отделяя все целые части произведения, пока произведение не станет равно нулю.
  • Все отделённые целые части будут дробной частью числа в новой системе счисления.
Рассмотрим пример:
211,12510 → ... 2
  • 211:2 = 105 ост. 1
    105:2 = 52 ост. 1
    52:2 = 26 ост. 0
    26:2 = 13 ост. 0
    13:2 = 6 ост. 1
    6:2 = 3 ост. 0
    3:2 = 1 ост. 1
    1:2 = 0 ост. 1
  • 21110 = 110100112
  • 0,125 * 2 = 0,25 + 0
    0,25 *2 = 0,5 + 0
    0,5 *2 = 0,0 + 1
  • 0,12510 = 0,0012
  • 211,12510 = 11010011,0012
Bq → ... 10

  • Исходное число (B) необходимо записать в полной форме, т.е. суммой степеней основания исходной системы счисления (q).
  • Выполнить вычисления по правилам десятичной системы счисления.
Рассмотрим пример:
370,5648 → ... 10
  • 370,5648 = 3*82 + 7*81 + 0*80 + 5*8-1 + 6*8-2 + 4*8-3
  • 370,5648 = 192 + 56 + 0 + 0,625 + 0,09375 + 0,0078125 = 248,726562510

Задания

  1. Переведите в двоичную, восьмеричную, шестнадцатеричную систему счисления десятичные числа:
    • 1247,54296875
    • 288,71484375
    • 483,02734375
    • 769,99609375
    • 2540,80859375
    Перевод осуществите двумя способами: разложением в ряд по степеням и по алгоритму Евклида
     
  2. Переведите в десятичную систему счисления двоичные числа:
    • 11011101,000101
    • 1100011111,11011001
    • 1111000,0001111
    • 100100,10101
    • 1111110,0111101
     
  3. Переведите в десятичную систему счисления восьмеричные числа:
    • 1204,451
    • 560,003
    • 742,542
    • 409,777
    • 2457,7542
     
  4. Переведите в десятичную систему счисления шестнадцатеричные числа:
    • 746,A08
    • BD0,751
    • ABC,DEF
    • FED,CBA
    • 846,32
     
  5. *Выполните перевод:
    • 505,0525 → ... 5
    • 6871,681610 → ... 0,1
    • 165,005410 → ... 1/8

Желаю успеха!

Заметили ошибку, нажмите здесь и напишите мне об этой ошибке



Дополнительные сведения


Краткие сведения
В разработке...

Задания

  1. Переведите в двоичную систему счисления десятичные числа:
    • 312,25390625
    • 479,38671875
    • 2751,01953125
    Перевод осуществите двумя способами: разложением в ряд по степеням и по алгоритму Евклида
     
  2. Переведите в восьмеричную систему счисления десятичные числа:
    • 548,294921875
    • 703,544921875
    • 3412,740234375
    Перевод осуществите двумя способами: разложением в ряд по степеням и по алгоритму Евклида
     
  3. Переведите в шестнадцатеричную систему счисления десятичные числа:
    • 791,94140625
    • 1047,66015625
    • 5006,01953125
    Перевод осуществите двумя способами: разложением в ряд по степеням и по алгоритму Евклида
     
  4. Переведите в восьмеричную и шестнадцатеричную систему счисления двоичные числа:
    • 101101101,0011011101
    • 1110010110,1110011101
    • 11101101,11011111011
    • 11101010010,000010111
    • 1000010100101,11011000010101
     
  5. Переведите в двоичную и шестнадцатеричную систему счисления восьмеричные числа:
    • 1560,5613
    • 7452,4143
    • 44354,3274
    • 6563,02406
    • 5341772,345426
     
  6. Переведите в двоичную и восьмеричную систему счисления шестнадцатеричные числа:
    • AB452,567489
    • 887С,DE401
    • FCD,000871
    • 40452,04559
    • BDA0,45998
     
  7. Представьте в машинном коде десятичные числа:
    • -83
    • -100
    • -215
    • -4066
    • -52478
     
  8. *Выполните перевод:
    • 85AH,K0125 → ... 5
    • 11011011,1101112 → ... 0,25
    • 1111011100,0011101010,5 → ... 0,125

Желаю успеха!

Заметили ошибку, нажмите здесь и напишите мне об этой ошибке



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

Поздравляю с новым годом и Рождеством!


Краткие сведения
Любые данные представляются в компьютере в двоичном коде.

Формы представления чисел
В ЭВМ применяются две формы представления чисел: с фиксированной и плавающей точкой. Числа с фиксированной точкой являются целыми, с плавающей - вещественными.

ЦЕЛЫЕ ЧИСЛА
Для представления целых чисел используют 1; 2; 4; 8 байт, или как говорят, 1 байт; слово; двойное слово; учетверённое слово. Из изученного ранее известно, что максимальное количество комбинаций нулей и единиц в восьми разрядах составляет 256. Таким образом, в одном байте можно закодировать любое число 0 ≤ N ≤ 255. Или, для представления целого неотрицательного числа требуется:
1 байт, если N ≤ 28-1;
1 слово, если N ≤ 216-1;
1 двойное слово, если N ≤ 232-1;
1 учетверённое слово, если N ≤ 264-1.
Рассмотрим примеры:
Представить в машинном коде числа

  • 78 = 01001110
  • 159 = 10011111
  • 1 406 = 00000101 01111110
  • 59 130 = 11100110 11111010
  • 72 416 = 00000000 00000001 00011010 11100000
  • 4 290 302 092 = 11111111 10111000 11010000 10001100
  • 10 640 784 147 =
    = 00000000 00000000 00000000 00000010 01111010 00111101 01111011 00010011
  • 18 446 743 608 244 120 050 =
    = 11111111 11111111 11111111 10010011 10100000 00011001 00101001 11110010

Мы рассмотрели представление целых неотрицательных чисел в машинном коде. Следует объяснить представление целых отрицательных чисел в машинном коде. Как и раньше, число может быть представлено байтом, словом, двойным словом, учетверённым словом. Однако, для указания знака используют старший разряд: 0 - число положительное, 1 - отрицательное. Таким образом, в одном байте для кодирования отрицательного целого числа будут использованы 7 бит (с 0 по 6). Положительные числа будут представлены наборами от 00000000 до 01111111, т.е., 0 ≤ N ≤ 127, а отрицательные наборами от 10000000 до 11111111, т.е., -128 ≤ N ≤ -1. Или, для представления "любого" целого числа требуется:
1 байт, если -27 ≤ N ≤ 27-1;
1 слово, если -215 ≤ N ≤ 215-1;
1 двойное слово, если -231 ≤ N ≤ 231-1;
1 учетверённое слово, если -263 ≤ N ≤ 263-1.
Особенность представления отрицательных чисел связана:

  1. с одним из основных правил арифметки: А + (-А) = 0;
  2. с ограниченностью представления чисел в машинном коде. Для одного байта справедливо 28 = 0, т.к. единица выходит за разрядную сетку одного байта и просто теряется.
Любопытно заметить на следующих примерах:
  1. 1 + (-1) = 0 или 00000001 + 11111111 = 1 00000000; и
    127 + (-127) = 0 или 01111111 + 10000001 = 1 00000000
  2. В обеих парах чисел при сложении в машинных кодах получаем 0, единица выходит за разрядную сетку байта. 00000001 + 11111111 = 00000000; и 01111111 + 10000001 = 00000000
Можно построить таблицу соответствия отрицательных чисел и машинных кодов. Уже из этой таблицы можно вывести алгоритм представления отрицательных целых чисел в машинных кодах.
  • Перевести модуль отрицательного целого числа в двоичную систему счисления.
  • Дополнить число нулями слева до 1 байта, или до 1 слова, или до 1 двойного слова, или до 1 учетверённого слова.
  • Заменить в полученном числе единицы на нули, а нули на единицы (инвертировать число).
  • К полученному числу прибавить 1 по правилам двоичной арифметики.
Полученное представление отрицательного целого числа называется дополнительным кодом.
Рассмотрим примеры:
  1. Представить число -54 в машинном коде.
    • |-54| = 54; 5410 = 1101102
    • 110110 = 00110110
    • 00110110 → 11001001
    • 11001001 + 1 = 11001010
  2. Представить число -152 в машинном коде.
    • |-152| = 152; 15210 = 100110002
    • 10011000 = 00000000 10011000
    • 00000000 10011000 → 11111111 01100111
    • 11111111 01100111 + 1 = 11111111 01101000
  3. Представить число -40 000 в машинном коде.
    • |-40 000| = 40 000; 40 00010 = 10011100 010000002
    • 10011100 01000000 = 00000000 00000000 10011100 01000000
    • 00000000 00000000 10011100 01000000 → 11111111 11111111 01100011 10111111
    • 11111111 11111111 01100011 10111111 + 1 = 11111111 11111111 01100011 11000000

ВЕЩЕСТВЕННЫЕ ЧИСЛА
Система вещественных чисел, применяемая при ручных вычислениях, предполагается бесконечно непрерывной. Это означает, что не существует никаких ограничений на диапазон используемых чисел и точность их представления. Для любого вещественного числа имеется бесконечно много чисел, которые больше или меньше его, а между любыми двумя вещественными числами также находится бесконечно много вещественных чисел.
Реализовать такую систему в технических устройствах невозможно. Во всех компьютерах размеры ячеек памяти фиксированы, что ограничивает систему представимых чисел. Ограничения касаются как диапазона, так и точности представления чисел, т.е. система машинных чисел оказывается конечной и дискретной, образуя подмножество системы вещественных чисел.
Представим произвольное десятичное число А в виде произведения правильной дроби и некоторой степени основания системы счисления (10).
A10 = М * 10p,
где 0,1 ≤ М < 1, мантисса - правильная десятичная дробь;
р - порядок, целое десятичное число.
Такое представление числа называется нормализацией. Именно в такой форме представлены вещественные числа в памяти ЭВМ, но не в десятичной системе счисления, а в двоичной. Фактически число делится на три составляющих: знак числа, порядок (характеристика), мантисса. Особенности представления порядка дают возможность работать с ним как с целым беззнаковым числом. Выделяют три типа вещественных чисел. Эти типы отличаются точностью представления вещественных чисел, объёмом занимаемой памяти и смещением порядка. Рассмотрим эти типы.

Формат Общая длина (байт) Знак мантиссы (бит) Порядок (бит) Мантисса (бит) Смещение порядка Диапазон представимых чисел Точность Dec Особенность представления
Короткое вещественное 4 1 8 23 127 10-42 ... 1038 7 - 8 цифр неявный старший бит
Длинное вещественное 8 1 10 53 1023 10-324 ... 10308 15 – 16 цифр неявный старший бит
Временное вещественное 10 1 15 64 16383 10-4951 ... 104932 19 – 20 цифр явный старший бит

Рассмотрим пример:
Значение переменной A представлено в формате с плавающей точкой в шестнадцатеричной системе счисления A=C2F2000016. Найти десятичной значение числа A.

Пользуясь правилами прямого перевода из шестнадцатеричной системы счисления в двоичную, преобразуем шестнадцатеричное представление в двоичное.
A = C2F2000016 = 110000101111001000000000000000002
Полученное представление числа содержит 32 знака (бита), или 4 байта. Значит наше число короткое вещественное.

Вычленим из представления знак, порядок и мантиссу.
Первый бит (1) - знак.
Следующие 8 бит (10000101) - порядок.
Оставшиеся биты (11100100000000000000000) - мантисса.

Теперь произведём вычисления.
Знаковый бит равен единице, следовательно, искомое число отрицательное.
Порядок числа в памяти компьютера хранится в прямом коде со смещением. Найдем его:
Pсм = 100001012 = 13310.
Найдем реальный порядок, из порядка со смещением вычтем величину смещения 12710.
Pреальный = 133 - 127 = 6.
Следовательно, знак «двоичной» запятой в мантиссе нужно сместить вправо на 6 позиций. Вспомним, что первый бит мантиссы – неявный, поэтому реальная мантисса имеет вид:
M = 1,111001000000000000000002.
Выполним смещение запятой на величину порядка, получаем:
A = 1111001,000000000000000002.
Все нули после запятой незначащие, тогда:
A = 11110012.
Представим это число в десятичной системе счисления:
A = 11110012 = 12110.
Теперь учтём, что наше число отрицательное:
A = -12110.
Это и есть искомое число.

Задания

  1. Представьте в машинном коде следующие неотрицательные целые десятичные числа:
    • 0
    • 5
    • 37
    • 106
    • 126
    • 187
    • 202
    • 247
    • 231
    • 262
    • 10 452
    • 20 813
    • 33 045
    • 65 536
    • 4 294 962 645
    • 64 424 509 440
    • 18 446 743 038 622 433 280
     
  2. Представьте в машинном коде следующие целые десятичные числа:
     
  3. Найдите десятичное представление следующих вещественных чисел:
Продолжение следует...

Желаю успеха!

Заметили ошибку, нажмите здесь и напишите мне об этой ошибке



Форма входа

Календарь новостей
«  Июль 2020  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright С.С. Лебедев © 2008-2020 Конструктор сайтов - uCoz