Типы данных
XalionДанными и процессами в компьютере управляют машинные команды ISA. Чтобы не возникало проблем с совместимостью команд и данных, существуют аппаратная и программная поддержка данных.
Аппаратная поддержка — это низкоуровневые команды ISA, они работают с данными в конкретном виде. Если команда получает данные в другом виде — ничего работать не будет.
Если передать команде отрицательное число и поставить после него еще один минус, то команда ничего не поймет и остановится.
–15
–
поймёт, –15–
–
не поймёт.
Программная поддержка — это интерпретатор. Он собирает данные по кусочкам в такой вид, какой понимает аппаратная поддержка.Компьютеру дают число длиной 64 бит и он не поддерживает такие длинные числа. Программная поддержка соберет его из двух 32-битных или четырёх 16-битных чисел.
Машинные команды работают с двумя типами данных: числовыми и нечисловыми. Они хранятся в двоичном коде.
Размер числа всегда кратен двум: 8, 16, 32, 64 и 128 бит. Чем больше бит для записи, тем больше число. В 32-битное число поместится одно из 4 294 967 295 чисел.
2³² = 4 294 967 296, но компьютеры считают с нуля. Так происходит из-за нумерации памяти — первое число обозначается нулём.
Компьютеры поддерживают целые и дробные числа. Они делятся на положительные и отрицательные.
Беззнаковое 8-битное число вмещает числа от 0 до 255, потому что записывают только положительные. Под данные отдаётся 8 бит.
Знаковое 8-битное число вмещает числа от –128 до 127. Тут вдвое меньше, потому что один бит хранит знак числа. Под данные отдаётся 7 бит.
Для знака числа выделяется первый бит. 0 — положительное,
1 — отрицательное.
Для дробных чисел используют числа с плавающей точкой. Их длина — 32, 64
и 128 бит. Запятая между частями числа требует отдельного байта.
Кодировка данных в компьютере и системы счисления — объёмный раздел, по нему будет отдельный ряд статей.
К нечисловым относятся булевы значения, указатели и символы.
Булевы значения — логический тип данных. Ложь — 0 и истина — 1.
Они занимают один байт, реже одно слово.
Рыбы живут в воде — 1. Солнце фиолетовое – 0.
Указатели — переменные, они хранят физический адрес ячейки памяти.
Поставим указатель P на переменную V и выведем P на экран.
Получаем адрес переменной V в памяти, например, 0x6dfef8.
О символах мы писали в статье о кодировках символов.
Следующая статья о форматах команд.