назад

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

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

0 вольт соответствует цифре "0"
1 вольт соответствует цифре "1"
...
9 вольт соответствует цифре "9"

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

0...0,5 вольт соответствует цифре "0"
2,5...5 вольт соответствует цифре "1"

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

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

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

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

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

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



Число 1 1 0 1

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

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









1 1 0 1 0 0 1 0
 +  +  +  = 210

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

Упражнение №5

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

1. 0110b     3. 0101b     5. 10111001b     7. 10101101b
2. 1011b 4. 1001b 6. 10011001b 8. 11111111b

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

- бит                        1
- полубайт 1011
- байт 1101 0011
- слово 1001 0110 0101 1110

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

знаковый бит   бит     байт 
? ? ? ?
1001 0110 1101 0111
Y слово Y

 

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

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

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

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

 

1001001001011011b ® 1001.0010.0101.1011b

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

1001b =  + 	=  9 ® 9
0010b = = 2 ® 2
0101b = + = 5 ® 5
1011b = + + = 11 ® B

1001.0010.0101.1011b = 925Bh

 Упражнение №6

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

1. 1111b     4. 1110b     7. 10101001b
2. 1010b 5. 1001b 8. 10001001b
3. 1011b 6. 1101b 9. 11111111b

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

              1
1 0 1
+0 +1 +1
1 1 10

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

1111                       111111
1101 13 + 3 = 16 01101110 110 + 90 = 200
+0011 +01011010
10000 11001000

 Упражнение №7

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

1. 0101 + 1100     3. 10100011 + 00110011
2. 1110 + 0011 4. 10110011 + 01011100

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