Главная arrow Документация arrow Системы исчисления
21.10.2017 г.

Последние Комментарии

Nightshade 30.09.2017 г.
Monster World IV 17.09.2017 г.
Chrono Trigger 08.09.2017 г.

Гостевая Книга

Сергей
Сделайте пожалуйста перевод Снес игры "Addams Fami
Краткие новости
Поздравляем всех милых дам с Международным женским днём! Желаем быть всегда красивыми и обаятельными, а также чтобы все ваши надежды и мечты сбылись как можно скорее. К этому дню мы решили опубликовать обновлённую версию перевода на русский язык игры  Bishoujo Senshi Sailor Moon - Another Story (SNES)  от наших форумчан (Animanyak, GrekRus). Текст был переведён практически полностью с нуля и на все работы ушло больше двух лет. Ребята очень старались и нужно отдать им должное. Скачивайте и играйте в своё удовольствие!

8

 
Цитаты
Президенты общались в тёплой дружественной обстановке... пока не пришёл переводчик ;о)
Внимание! Всем-всем-всем!
Товарищи! Если у кого-то из вас вдруг завалялись ненужные (или не очень нужные) картриджи денди - не дайте пропасть добру! Приму в дар, скопирую и верну хозяину или куплю/обменяю любые интересные картриджи, особенно редкие или пиратские. С предложениями обращайтесь НА ФОРУМ или В ЛИЧКУ. Подпись: Guyver.
Системы исчисления Печать E-mail
Автор Guyver   
10.05.2008 г.

СИСТЕМЫ ИСЧИСЛЕНИЯ (автор: Chief_exb)

Оглавление.

1. Введение.
2. Двоичная система.
3. Шестнадцатеричная система.
4. Восьмеричная система исчисления.
5. Преобразование двоичной системы к 16, 8-ричной и обратно.
6. Дроби.

Введение.

Совсем недавно я обнаружил, что многим нелегко даётся понимание шестнадцатеричной и двоичной систем исчисления. Поэтому этот FAQ я посвящу им. Начнём с простого. Все мы знаем десятичную систему исчисления, так как обычно только с ней и сталкиваешься. Возьмём число 1234.
 
Степень 103210
цифра1234
Таблица №1

Число 1234 это ничто иное как 1103+2102+3101+4100=1234

Таким образом цифры составляют десятичное число. Если с этим всё понятно, тогда с помощью алгебры можно записать в общем виде уравнение числа любой системы исчисления.

Допустим, A-число состоит из n цифр системы исчисления D, тогда его можно записать так: А=аn∙Dn-1n-1∙Dn-2+ʌ2∙D11∙D (Ур.1), где a - цифры этого числа.

Теперь о системах исчисления по подробнее.

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

  Система исчисления с числом цифр 2: 0 и 1 (D=2). В компьютере информация кодируется двумя состояниями: сигналами пассивного уровня или активного уровня, т.е. 0 или 1. Поэтому эта система исчисления и была разработана. Теперь применим уравнение 1 к двоичной системе и получим число 1001.

Если это понятно, то как нам перейти от 10 системы к двоичной? Нужно делить последовательно на два.

 
102        
1052       
0422      
  |121      
  |  |0  |       
 \/ \/\/ \/      
0101      

<--

 --- --- ---      
          
          

Стрелкой показан порядок записи цифр остатков от деления на 2. Наше число 10 десятичное это ничто иное, как 1010 двоичное. Далее, чтобы не было разночтений, я буду писать 1010, где нижний индекс основание системы исчисления.

Шестнадцатеричная система.

D=16. Пожалуй, с ней исследователю РОМов приходится сталкиваться очень часто. Как вы уже заметили, двоичная система исчисления очень неудобна для записи. Чтобы написать число 1010 надо 4 двоичных цифры. А 8 цифр дают всего лишь 25510. Поэтому было решено перейти для записи к системе кратной двоичной: шестнадцатеричной. Цифры этой системы: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F.

Применяя уравнение 1, можно записать число 1F16
15161+15160=15+16=31

1F16=3110

Преобразование из 10 к 16, всё то же деление на D=16

3116
161
154
 |1
 | |
 \/\/ 
F1
<------

Записываем остатки в обратном порядке и получаем 1F (естественно заменяя 15 на F).

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

D=8 утратила свое значение, уступив место 16-ричной системе исчисления. Но она всё также преподаётся в университетах и школах. Все то же самое, что и для 16.

Применяя уравнение 1, можно записать число 2468 как:
282+481+680=128+32+6=166

2468=16610

Преобразование из 10 к 8, всё то же деление на D=8

1668 
160208

6

162
 |4 |
 | | | 
\/\/\/
642
 <-- -- --
 
Записываем остатки в обратном порядке, получаем 246.

Преобразование двоичной системы к 16, 8-ричной и обратно.

10162
 000000
110001
220010
330011
440100
550101
660110
770111
881000
991001
10A1010
11B1011
12C1100
13D1101
14E1110
15F1111
Таблица №2

На практике такое часто нужно. Как это сделать? Нужно просто заменить двоичные цифры

Имеем 2-ичное число 1010001 дополняем спереди его нулями, чтобы количество цифр было кратно 4: 0101 0001, и заменяем полученные тетрады по таблице.
Получаем 5116=10100012 .

Теперь с 8-миричной системой всё то же самое, только заменяем не тетрады, а триады.
Подчёркнутый 0 не учитывать. 11100 дополняем нулями спереди чтобы число цифр было кратно 3. и заменяем по таблице 2: 011 1002=348 .

Легко заметить, что обратное преобразованием ничем ни отличается.
Допустим 1F16=0001 11112. Или 248=010 1002

Всё очень просто, не правда ли?

Дроби.

Как дело обстоит с дробями? Описанный формат дроби не соответствует его представлению в памяти персонального компьютера, но изучается в университетах, для базиса знаний. Чтобы перейти потом к сложному. Итак, помните таблицу 1?

А что с десятичной дробью? Оказывается всё просто: 1234,12

 
Степень 103210-1-2
цифра123412
Таблица №3

1103+2102+3101+4100+110-1+210-2=1234,12
Уравнение 1 примет вид.

А-целое, B-дробное.Число=C=A+B
А=аn∙Dn-1n-1∙Dn-2+ʌ2∙D11∙D для целой части
И для дробной части.
B=b1∙D-1+b2∙D-2+ʌ+b2∙D-(k-1)+bk∙D-k
Для преобразования дроби в двоичную систему исчисления необходимо умножать её на два. Возьмем число 8,12.

810=10002
0,12x2=0,24 нет ничего в целой части пишем в дробь 0,0
0,24x2=0,48 нет ничего в целой части пишем в дробь 0,00
0,48x2=0,96 нет ничего в целой части пишем в дробь 0,000
0,96x2=1,92 в целой части 1 пишем в дробь 0,0001
Отбрасываем целое и продолжаем
0,92х2= И так пока не выйдем на заданный предел точности, ну а я решил остановиться.

Выходит что 8,1210~1000.00012
С шестадцатиричными числами всё также, только умножаем на 16. Если есть в целой части число, пишем в дробь его, если нет, то пишем 0.

Чтобы сократить число умножений при преобразовании 10-тичной дроби в 2-ичную, вначале её приводят к шестнадцатеричной записи, а потом переводят её в двоичную по методу, описанному выше заменой на тетрады по таблице.

Пример :

Число 0,62510
0,625x16=10 10о в целой части пишем в дробь 0,A
Теперь преобразуем двоичную по таблице 0,10102. (A=1010)
Проверим: 2-1+2-3=0,5+0,125=0,625

Как видите и с дробями ничего сложного. Если кого-либо заинтриговала тема, пишите. Возможно FAQ получит развитие. С уважением, Шеф (chief_exb).


Последнее обновление ( 09.01.2010 г. )
 
« Пред.   След. »
home contact search contact search