Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Инфа- ответы на теор.вопросы.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
760.25 Кб
Скачать

Тип данных char

Тип данных char - это целочисленный тип данных, который используется для представления символов. То есть, каждому символу соответствует определённое число из диапазона [0;255]. Тип данных char также ещё называют символьным типом данных, так как графическое представление символов в С++ возможно благодаря char. Для представления символов в C++ типу данных char отводится один байт, в одном байте — 8 бит, тогда возведем двойку в степень 8 и получим значение 256 — количество символов, которое можно закодировать. Таким образом, используя тип данных char  можно отобразить любой из 256 символов. Все закодированные символы представлены в таблице ASCII. 

ASCII ( от англ. American Standard Code for Information Interchange) — американский стандартный код для обмена информацией.

  Рассмотрим программу с использованием типа данных char.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

// symbols.cpp: определяет точку входа для консольного приложения.

 

#include "stdafx.h"

#include <iostream>

using namespace std;

 

int main(int argc, char* argv[])

{

    char symbol = 'a'; // объявление переменной типа char и инициализация её символом 'a'

    cout << "symbol = " << symbol << endl; // печать символа, содержащегося в переменной symbol

    char string[] = "cppstudio.com"; // объявление символьного массива (строки)

    cout << "string = " << string << endl; // печать строки

    system("pause");

    return 0;

}

Итак, в строке 9 объявлена переменная с именем symbol, ей присвоено значение символа 'a' (ASCII код). В строке 10 оператор cout печатает символ, содержащийся в переменной symbol. В строке 11 объявлен строковый массив с именем string, причём размер массива задан неявно. В строковый массив сохранена строка "cppstudio.com". Обратите внимание на то, что, когда мы сохраняли символ в переменную типа char, то после знака равно мы ставили одинарные кавычки, в которых и записывали символ. При инициализации строкового массива некоторой строкой, после знака равно ставятся двойные кавычки, в которых и записывается некоторая строка. Как и обычный символ, строки выводятся с помощью оператора cout, строка 12.

Беззнаковые двоичные коды.

Первый вид двоичных кодов, который мы рассмотрим - это целые беззнаковые коды. В этих кодах каждый двоичный разряд представляет собой степень цифры 2:

При этом минимально возможное число, которое можно записать таким двоичным кодом, равно 0. Максимально возможное число, которое можно записать таким двоичным кодом, можно определить как:

Этими двумя числами полностью можно определить диапазон, чисел которые можно представить таким двоичным кодом. В случае двоичного восьмиразрядного беззнакового целого числа диапазон будет: диапазон чисел, которые можно записать таким кодом: 0 .. 255. Для шестнадцатиразрядного кода этот 0 .. 65535. В восьмиразрядном процессоре для хранения такого числа используется две ячейки памяти, расположенные в соседних адресах. Для работы с такими числами используются специальные команды.

Второй вид двоичных кодов, который мы рассмотрим - это прямые целые знаковые коды. В этих кодах старший разряд в слове используется для представления знака числа. В прямом знаковом коде нулем обозначается знак '+', а единицей - знак '-'. В результате введения знакового разряда диапазон чисел смещается в сторону отрицательных чисел:

В случае двоичного восьмиразрядного знакового целого числа диапазон чисел, которые можно записать таким кодом: -127 .. +127. Для шестнадцатиразрядного кода этот диапазон будет: -32767 .. +32767. В восьмиразрядном процессоре для хранения такого числа тоже используется две ячейки памяти, расположенные в соседних адресах.

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

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

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

Представление чисел с плавающей точкой в общем случае имеет вид

X = <знак>M*pt,

где М – мантисса числа  Х, t – порядок, p – основание ( обычно целая степень числа 2). Мантисса и порядок представляются в системе счисления с основанием p. Знак числа совпадает со знаком мантиссы. Порядок t может быть положительным или отрицательным целым числом, определяет положение точки в числе Х. Для представления порядка применяют смещенный код. Для перехода к смещенному коду от дополнительного кода необходимо инвертировать знаковый разряд кода. Особенностью смещенного кода является то , что из [X1]см > [X2]см  X1 >X2. Это упрощает сравнение чисел со знаком, сводя его к сравнению представляющих их кодов (чисел без знака).Чтобы сформировать смещенный код числа , сначала выбирается длина битовой комбинации, а затем в порядке счета в обычной двоичной системе последовательно записываются все возможные комбинации, имеющие установленную длину. Кодовые значения ,получаемые при использовании трехразрядных битовых комбинаций приведены в таблице.

Значение

Комбинация  битов

3

111

2

110

1

101

0

100

-1

011

-2

010

-3

001

-4

000

Для представления числа 0 выбирается битовая комбинация 100, с единицей в старшем разряде. Все последующие комбинации с единицей в старшем разряде будут представлять числа 1, 2, 3 соответственно. Предыдущие комбинации в обратном направлении используются для представления чисел -1, -2,-3, -4. Пример представления в котором для хранения числа используется один байт (восьмиразрядный формат). Способ разделения байта представлен ниже.

Знак

Смещенный порядок

Модуль мантиссы (двоичный )

7

6..4

  1. …0

  1. Массив это группа ячеек памяти одинакового типа, расположенных рядом и имеющих общее имя. Каждая ячейка в группе имеет уникальный номер.

Чтобы использовать массив, надо его объявить – выделить место в памяти. Типом массива называется тип массива это тип входящих в него элементов. Массивы могут быть разных типов — int, float, char, и т.д. Массив объявляют так же, как и обычные переменные, но после имени массива в квадратных скобках записывается его размер.