Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Язык программирования (и ОС) ФОРТ (FORTH) S010: Двоичные числа


Информационный Канал Subscribe.Ru

S010: Двоичные числа

Компьютер умеет работать только с целыми числами -- операции с плавучкой
(числа с плавающей точкой, типа 12.34 или -4.56E-7) реализуются на
специализированном чипе (отдельном или на кристалле процессора сбоку) или с
помощью эмуляции на целых числах.

Как всем известно, компьютер использует для представления любой информации
двоичную систему. Для хранения и обработки информации используются физические
структуры, имеющие два устойчивых состояния. Один такой элемент может
кодировать только два числа: 0 и 1. Также могут кодироваться наличие (1) или
отсутствие (0) какого-то события. Такой элемент называют триггером, флагом,
семафором и т.п., самое общее и часто используемое название -- бит.

Для кодирования целых чисел используются группы бит. Чаще всего используются
группы из 2^N бит (2 в степени N). Если N=4, такая группа называется nibble,
если 8 -- байт. Иногда при преобразовании аналоговых сигналов (звук, видео,
сигналы с датчиков) используются группы из 6, 10, 12 бит -- в таком виде
отдает данные АЦП (аналого-цифровой преобразователь, ADC).

Процессор выполняет операции сразу над такой группой бит. Разрядность
процессора определяется максимальным числом бит, которые процессор может
обработать за одну операцию. Такая группа бит максимальной длины называется
машинным словом (не путать с форт-словом). Самые распространенные сейчас
компьютеры имеют машинной слово длиной 32 бита, но до сих пор активно
используются компьютеры с малой разрядностью 8 или 16 бит (в мобильных
телефонах, стиральных машинах, телевизорах, модемах и т.п.).

Кстати, для многих будет открытием, что в вашем компьютере на самом деле
сейчас стоит минимум 5 процессоров, кроме основного: на видеокарте, в каждом
винте, CD/DVD, на звуковой карте, в модеме и т.п. Без него обошлись разве что
сетевая карта и дисковод.

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

число 237

номер бита     76543210
               11101101

перевод двоичного числа в десятичное:

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

Перевод из десятичного числа в двоичное вручную выполняется как обычное
деление "столбиком" на 2, цифры двоичного числа см. остатки от деления.

Некоторую сложность имеет представление чисел со знаком: в машинное слово
одной и той же длины влазит или число (безнаковое целое, unsigned int)
0..65535, или (целое со знаком, signed int) -32767..32768 (16-битное машинное
слово).

Для изменения знака числа используется выражение:

not(N)+1 = -N

Операция NOT выполняет инверсию бит: 0 заменяется на 1, а 1 на 0.

Чтобы при записи чисел отличать десятичные и двоичные числа, в конце двоичного
числа добавляют символ b (binary):

237 = 11101101b

К сожалению, это работает только в настоящем ассемблере. В Форте почему-то
такую возможность явного указания основания системы счисления не обеспечили.

================
ведущий рассылки Дмитрий ПонятОв
http://akps.ssau.ru
forth@km.ru
FidoNet SU.FORTH 2:5057/18.29
tel.: +7 8462 28 9910 (work), 15 4313 (home)

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.forth
Отписаться
Вспомнить пароль

В избранное