?

Log in

No account? Create an account

67_itmo


Группа К4132 СПбГУ ИТМО


Previous Entry Share Next Entry
Работа №3: Упражнение по теме "Основные системы счисления"
matholimp wrote in 67_itmo
Пользуясь кодовой страницей 1251 (или 0866), запишите свою фамилию в виде числа в 256-чной (байтовой) системе счисления. Заменив каждую 256-чную цифру двумя 16-чными ("дампом"), переведите это число в шестнадцатеричную систему счисления. Затем (уже из шестнадцатеричной) переведите его в системы счисления с основаниями 8, 2, 3, 9, 10.
Наконец, переведите это число в факториальную и фибоначчиевскую системы счисления.
Кодовые страницы можно найти, например, на http://mech.math.msu.su/~shvetz/54/inf/perl-problems/chIO_sCodePages.xhtml (таблицы 17.4 и 17.5). Все остальные нужные определения Вы легко найдёте по ссылкам с http://www.mashavph.narod.ru/Cheb02/term.htm .
Поясню на примере собственной фамилии. В кодировке Windows‑1251 заглавной букве Ф соответствует код 212, а строчным буквам: е - 229, д - 228, о - 238, т - 242, в - 226. Согласно схеме Горнера, слову Федотов соответствует число
(((((212х256+229)х256+228)х256+238)х256+242)х256+238)х256+226 . Легко видеть, что вычисление с помощью калькулятора или Excel приведет к потере точности. Поэтому нужно использовать специальные процедуры или иные средства, позволяющие сохранить все цифры.
Сравнительно легко переводить числа из одной основной системы счисления в другую в тех случаях, когда оба основания являются степенями одного и того же числа. Например, 256=28, а 8=23. Поэтому для перевода числа из 256-чной системы в 8-чную удобно сначала перевести в двоичную, для чего достаточно вместо каждого байта записать его 8-битовый двоичный код: Ф=212=110101002, е=229=111001012, д=228=111001002, о=238=111011102, т=242=111100102, в=226=111000102. Эти биты нужно записать единой строкой, перегруппировать по три (начиная с конца записи), а затем каждую триаду заменить соответствующей 8-чной цифрой:
Федотов256=
=11010100 11100101 11100100 11101110 11110010 11101110 111000102-256=
=110101001110010111100100111011101111001011101110111000102=
=11 010 100 111 001 011 110 010 011 101 110 111 100 101 110 111 011 100 0102-8=
=32471362356745673428.

  • 1

Лабораторная 3 , Магомедова В.Р.


Лабораторная работа №3


Лабораторная работа №3

https://vk.com/doc8436545_438327715

Воронова Екатерина

Лабораторная работа №3

Стерликова Дарья
https://vk.com/doc8972986_438602677

  • 1