Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Системы счисления
Представление данных и архитектура ЭВМ / Системы счисления
Системой счисления называется совокупность приемов
наименования и записи чисел.
Каждое число изображается в виде последовательности цифр, а
для изображения каждой цифры используется некоторый
физический элемент, который может находиться в одном из
нескольких устойчивых состояний.
Для проведения расчетов в повседневной жизни общепринятой
является десятичная система счисления. В этой системе для
записи любых чисел используются только десять различных
знаков (цифр):
0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
Эти цифры введены для обозначения десяти последовательных
целых чисел от 0 до 9. Обозначая число «ДЕСЯТЬ», мы
используем уже имеющиеся цифры «10». При этом значение
каждой из цифр поставлено в зависимость от того места
(позиции), где она стоит в изображении числа. Такая система
счисления называется позиционной. (Примером непозиционной
системы счисления является римская система счисления).
В десятичной системе счисления десять единиц каждого разряда
объединяются в одну единицу соседнего, более старшего
разряда.
Так, число 123,45 можно записать в виде выражения
123,45 = 1·102+2·101+3·100+4·10-1+5·10-2.
Аналогично десятичная запись произвольного числа x в виде
последовательности цифр anan-1...a1a0,a-1a-2...a-m основана на
представлении этого числа в виде полинома:
x = an·10n+an-1·10n-1+...+a1·101+a0·100+
+a-1·10-1+a-2·10-2+...+a-m·10-m
где ai - десятичные цифры. При этом запятая, отделяющая
целую часть от дробной, является, по существу, началом
отсчета.
Число P единиц какого-либо разряда, объединяемых в единицу
более старшего разряда, называетсяоснованием системы
счисления, а сама система счисления называется P-ичной.
Так, в десятичной системе счисления основанием системы
является число 10.
Для записи произвольного числа в P-ичной системе счисления
достаточно иметь P различных цифр. Цифры, служащие для
обозначения чисел в заданной системе счисления
называются базисными.
Запись произвольного числа x в позиционной системе счисления
с основанием P в виде полинома:
x = an·Pn+an-1·Pn-1+...+a1·P1+a0·P0+a-1·P-1+a-2·P-2+...+a-m·P-m
Каждый коэффициент данной записи может быть одним из
базисных чисел и изображается одной цифрой. Числа в P-ичной
системе счисления записываются в виде перечисления всех
коэффициентов полинома с указанием положения запятой.
В качестве базисных чисел обычно используются числа от 0
до P-1 включительно. Для указания того, в какой системе
счисления записано число, основание системы указывается в
виде нижнего индекса. В десятичной записи, например 12,43810.
x = an·2n+an-1·2n-1+...+a1·21+a0·20+a-1·2-1+a-2·2-2+...+a-m·2-m
где ai - двоичные цифры (0 или 1).
Таким образом, 410 = 416, 1510 = F16, 1110 = B16. Искомое число
306010 = BF416.
(перенос игнорируется): 6 – 4 = 2.
Пример 2: –5 + 2 = ?
2 – положительное число с кодом 0010
–5 – отрицательное число с дополнительным кодом 1011
Кодирование символов
Представление данных и архитектура ЭВМ / Кодирование символов
Кодировка символов (часто называемая также кодовой
страницей) – это набор числовых значений, которые ставятся в
соответствие группе алфавитно-цифровых символов, знаков
пунктуации и специальных символов.
Для кодировки символов в Windows используется таблица ASCII
(American Standard Code for Interchange of Information).
В ASCII первые 128 символов всех кодовых страниц состоят из
базовой таблицы символов. Первые 32 кода базовой таблицы,
начиная с нулевого, размещают управляющие коды.
Символ Код Клавиши Значени
nul 0 Ctrl + @ Нуль
soh 1 Ctrl + A Начало заголовка
stx 2 Ctrl + B Начало текста
etx 3 Ctrl + C Конец текста
eot 4 Ctrl + D Конец передачи
enq 5 Ctrl + E Запрос
ack 6 Ctrl + F Подтверждение
bel 7 Ctrl + G Сигнал (звонок)
bs 8 Ctrl + H Забой (шаг назад)
ht 9 Ctrl + I Горизонтальная табуляция
lf 10 Ctrl + J Перевод строки
vt 11 Ctrl + K Вертикальная табуляция
Символ Код Клавиши Значени
ff 12 Ctrl + L Новая страница
cr 13 Ctrl + M Возврат каретки
so 14 Ctrl + N Выключить сдвиг
si 15 Ctrl + O Включить сдвиг
dle 16 Ctrl + P Ключ связи данных
dc1 17 Ctrl + Q Управление устройством 1
dc2 18 Ctrl + R Управление устройством 2
dc3 19 Ctrl + S Управление устройством 3
dc4 20 Ctrl + T Управление устройством 4
nak 21 Ctrl + U Отрицательное подтверждение
syn 22 Ctrl + V Синхронизация
etb 23 Ctrl + W Конец передаваемого блока
can 24 Ctrl + X Отказ
em 25 Ctrl + Y Конец среды
sub 26 Ctrl + Z Замена
esc 27 Ctrl + [ Ключ
fs 28 Ctrl + \ Разделитель файлов
gs 29 Ctrl + ] Разделитель группы
rs 30 Ctrl + ^ Разделитель записей
us 31 Ctrl + _ Разделитель модулей
Базовая таблица кодировки ASCII
32 пробел 48 0 64 @ 80 P 96 `
33 ! 49 1 65 A 81 Q 97 a
34 “ 50 2 66 B 82 R 98 b
35 # 51 3 67 C 83 S 99 c
36 $ 52 4 68 D 84 T 100 d
37 % 53 5 69 E 85 U 101 e
38 & 54 6 70 F 86 V 102 f
39 ‘ 55 7 71 G 87 W 103 g
40 ( 56 8 72 H 88 X 104 h
41 ) 57 9 73 I 89 Y 105 i
42 * 58 : 74 J 90 Z 106 j
43 + 59 ; 75 K 91 [ 107 k
44 , 60 < 76 L 92 \ 108 l
45 - 61 = 77 M 93 ] 109 m
46 . 62 > 78 N 94 ^ 110 n
47 / 63 ? 79 O 95 _ 111 o
Кодировка UNICODE
Юникод (Unicode) — стандарт кодирования символов,
позволяющий представить знаки практически всех письменных
языков. Стандарт предложен в 1991 году некоммерческой
организацией «Консорциум Юникода».
В Unicode используются 16-битовые (2-байтовые) коды, что
позволяет представить 65536 символов.
Применение стандарта Unicode позволяет закодировать очень
большое число символов из разных письменностей: в
документах Unicode могут соседствовать китайские иероглифы,
математические символы, буквы греческого алфавита, латиницы
и кириллицы, при этом становится ненужным переключение
кодовых страниц.
Для представления символьных данных в кодировке Unicode
используется символьный тип wchar_t.
ASCII UNICODE
char wchar_t
1 байт 2 байта
Тип кодировки задается в свойствах проекта Microsoft Visual
Studio:
Многобайтовая кодировка предполагает использование
кодировки ASCII.
При этом при построении проекта используется директива
условной компиляции, переопределяющая типTCHAR:
#ifdef _UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif
Для перекодирования строки в формат Unicode без изменения
кодировки файла используется макроопределение
_T("строка")
Прототип макроса содержится в файле tchar.h.
Гарвардская архитектура
Гарвардская архитектура была разработана Говардом
Эйкеном в конце 1930-х годов в Гарвардском университете с
целью увеличить скорость выполнения вычислительных
операций и оптимизировать работу памяти. Она характеризуется
физическим разделением памяти команд (программ) и памяти
данных. В ее оригинальном варианте использовался также
отдельный стек для хранения содержимого программного
счетчика, который обеспечивал возможности выполнения
вложенных подпрограмм. Каждая память соединяется с
процессором отдельной шиной, что позволяет одновременно с
чтением-записью данных при выполнении текущей команды
производить выборку и декодирование следующей команды.
Благодаря такому разделению потоков команд и данных и
совмещению операций их выборки реализуется более высокая
производительность, чем при использовании Принстонской
архитектуры.