Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6, 12, 23.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
65.69 Кб
Скачать

6 Вопрос

Однобайтовые целочисленные данные

Самые короткие целочисленные данные со знаком представлены в памяти IBM-совместимых ПК одним байтом, в котором может разместиться любое число из диапазона от -128 до 127, записанное в дополнительном коде. В языках C, C++ для описания переменных такого типа используется спецификатор char. В одном же байте может быть расположено и самое короткое целое число без знака. По терминологии C таким числам соответствует спецификатор unsigned char. Диапазон допустимых данных при этом смещается вправо и равен [0, 255].

Двухбайтовые целочисленные данные

Вторая категория целочисленных данных в системах программирования, эксплуатируемых на IBM PC, представлена двухбайтовыми целыми числами. В варианте со знаком они поддерживают диапазон от -32768 до +32767, в варианте без знака - от 0 до 65535.

Язык системы BC 3.1 использует для описания двухбайтовых целочисленных данных спецификаторы int (короткое целое со знаком) и unsigned int(короткое целое без знака). При их использовании арифметические операции над короткими операндами выполняются корректно при условии, что результат не выходит за пределы разрешенного диапазона. Однако если к максимальному целому числу прибавить 1, то вместо положительного числа+32768 в компьютере окажется отрицательное число -32768. И никакого предупреждения о нарушении допустимого интервала система не выдаст. Считается, что программист сам должен позаботиться о соответствующих проверках. В версии Borland C++ Builder для объявления двухбайтовых целочисленных данных используются спецификаторы short и unsigned short.

Символьные данные в c

Символьные данные в языке C имеют тип char, если нам нужно завести переменную, которая будет содержать символ, а точнее код символа в таблице ASCII, то такую переменную нужно описать так.

1

char simvol;

Где simvol — имя переменной (задается программистом), в которой будет храниться наши символьные данные. Visual C++ также обладает, еще одним типом данных, с помощью которого можно описывать символы, но уже в таблице Юникод, которая в отличии от ASCII, под один символ занимает не один байт, а два, но о Юникоде поговорим позже.

Объявление и инициализация числовых переменных

Переменные числового типа, используемые в программе, обязательно должны быть объявлены до их использования в тех или иных исполняемых операторах. В отличие от языка Pascal алгоритмические языки C, C++ позволяют вводить такие описания не только в начале программных единиц (функций), но и по ходу формирования программы:

int main(void)

{ int i,j;

...........

s=0;

for(int k=0; k<10; k++)

........................

В приведенном примере переменные i и j объявлены в начале функции, а объявление переменной k встретилось в операторе цикла. По стандарту языка C++ место объявления переменной определяет сферу ее действия. Переменные, описанные в начале функции (такие как i и j в приведенном выше примере), считаются локализованными в данной функции и могут быть использованы в любой части тела этой функции. Повторное объявление переменных с такими же именами считается ошибкой (дублирование имен переменных). В отличие от этого действие переменных, объявленные в некотором внутреннем блоке функции (в нашем примере переменная k объявлены в цикле for), распространяется только на время работы этого блока. Т.е после выхода из цикла память, выделенная под переменную k, возвращается системе, и без повторного переобъявления этой переменной пользоваться уже нельзя. Следует отметить, что это положение стандарта языка C++ в системе BC 3.1 реализовано не так. Повторное объявление такой переменной в следующем внутреннем блоке в системе BC 3.1 приводит к сообщению об ошибке, т.к. при выходе из цикла переменная k продолжает свою жизнь. В средах визуального программирования Borland C++ Builder этот пассаж исправлен.

Объявлению любой переменной предшествует служебное слово, определяющее диапазон допустимых значений – тип переменной. Имена базовых типов числовых данных и соответствующие им характеристики, приведены в табл. 4.1 (BC 3.1) и 4.2 (BCB). Для вещественных чисел указаны минимальные по модулю значения.

Таблица 4.1

Тип

Длина

Минимальное значение

Максимальное значение

char, signed char

1 байт

-128

127

unsigned char

1 байт

0

255

short int, short

2 байта

-32768

32767

unsigned short

2 байта

0

65535

int, signed

2 байта

-32768

32767

unsigned int,

unsigned

2 байта

0

65535

long, long int

4 байта

-2147483648

2147483647

unsigned long

4 байта

0

4294967265

float

4 байта

3.4*e-38

3.4*e38

double

8 байт

1.7e-308

1.7e308

long double

10 байт

3.4e-4932

1.1e4932

Таблица 4.2

Тип

Длина

Минимальное значение

Максимальное значение

char, __int8

1 байт

-128

127

unsigned char

1 байт

0

255

short int, short,

__int16

2 байта

-32768

32767

unsigned short

2 байта

0

65535

int, signed, __int32

4 байта

-2147483648

2147483647

unsigned int,

unsigned

4 байта

0

4294967265

long, long int

4 байта

-2147483648

2147483647

unsigned long

4 байта

0

4294967265

int64, __int64

8 байт

-4611686018427387904

4611686018427387903

__uint64

8 байт

0

9223372036854775807

float

4 байта

3.4*e-38

3.4*e38

double

8 байт

1.7e-308

1.7e308

long double

10 байт

3.4e-4932

1.1e4932

Объявление переменной можно совместить с присвоением ей начального значения (инициализацией):

int x=18,y=-5;

float a=5F;

В отличие от языка Pascal инициализация локальных переменных в функциях на языках C, C++ происходит при каждом вызове функции.

Символьные данные ( С) записываются в апострофах, каждый символ транслируется в 1 байт информации. Для объявления одной переменной может быть записано одновременно до 256 символов. Ограничение на запись касается только двух символов: апостроф и амперсанд. Эти два символа пишутся двойными. [2]

Символьные данные, о которых идет речь в этой книге, представляют собой алфавитно-цифровые или специальные символы, кодируемые восемью двоичными позициями, и включают такие графические символы, как числа, буквы или знаки. [3]

Символьные данные ( см. рис. 1.10) представляют собой набор знаков. Каждый знак изображается восьмибитным кодом ДКОИ. [4]

Сортировка символьных данных по возрастанию означает сортировку по возрастанию кодов символов. [5]

Значениями символьных данных типа PICTURE являются строки символов длины, равной длине шаблона. Свойства переменных типа PICTURE аналогичны свойствам CHARACTER. Однако если переменной типа CHARACTER можно присваивать любые строки символов, то для переменной типа PICTURE проверяется, являются ли некоторые символы присваиваемой строки цифрами или буквами. [6]

Как представляются символьные данные в ЭВМ. [7]

Могут обрабатываться символьные данные - строки символов. Для обработки таких данных можно ввести, например, операцию подклейки ( конкатекации) строк, обозначаемую символом В соответствии с этой операцией к строке, стоящей перед знаком, будет подклеена строка, стоящая за ним, и из этих двух строк будет образована новая строка. [8]

Обнаружить индексированные символьные данные намного проще, если, задавая критерии поиска, с крайней левой позиции перемещаться направо, чем в том случае, когда критерии поиска задаются где-то посередине всех данных. [9]

Как представляются символьные данные в памяти ЭВМ. [10]

Для обработки символьных данных в языке dBASE IV предусмотрена довольна большая группа функций. Нередко при обработке строк требуется найти начальную позицию слова или его части в тексте. Для этого используется функция АТ ( выр. С / имя Memo поля), которая возвращает число, представляющее собой начальную позицию первой символьной строки во второй символьной строке или в поле Memo. [11]

Для передачи символьных данных в ФОРТРАНе существуют и другие средства: код Н и передача литералов. [12]

Типичным для символьных данных является случай, когда обрабатываемые строки находятся в основной памяти, а их обработка ведется посимвольно. [13]

Для представления символьных данных в ЭВМ используют стандартизованный набор символов. [14]

Под синтезом символьных данных понимается конструирование текстов из отдельных символов или из групп символов. Кирпичики, из которых синтезируются тексты, могут быть как константами типа С ( символьными значениями, известными в момент написания программы), так и переменными - вычисляемыми в ходе выполнения программы. [1]

Даны описатели числовых и символьных данных. [2]

Поле 4 содержит символьные данные в большинстве сегментов таблицы, но не во всех. Эти данные заносятся в таблицу в процессе выполнения программы. Это поле первоначально заполняется пробелами. [3]

Целочисленной границей для символьных данных является любой байт, так что запасаемая строка размещается с очередного свободного байта. [4]

Часто при обработке символьных данных возникает необходимость принимать и передавать данные из / в файлы по одному символу. В системной библиотеке этим целям служат две процедуры: getchar и putchar. Они обеспечивают передачу данных между памятью и устройствами стандартного ввода ( getchar) и вывода ( putchar) по одному байту. [5]

Если некоторая величина или символьные данные используются в программе только один или два раза, то практичнее применять литерал вместо константы. [6]

Третий способ позволяет хранить числовые и символьные данные на внешнем запоминающем устройстве в том же самом формате, как они представлены в оперативной памяти. [7]

Для ввода и вывода символьных данных используется спецификация Аи, обеспечивающая ввод или вывод и символов. При этом если длина вводимой переменной / байт, а н /, то переменной присваивается / последних символов; если и /, то символы записываются в старшие w байт, а остальные заполняются пробелами. При выводе если w I, то символьная константа располагается в / крайних правых позициях; если w /, то выводятся w старших байт. [8]

Для ввода и вывода символьных данных используется спецификация Аи, обеспечивающая ввод или вывод н символов. При этом если длина вводимой переменной / байт, a wl, то переменной присваивается / последних символов; если w I, то символы записываются в старшие н байт, а остальные заполняются пробелами. При выводе если н /, то символьная константа располагается в / крайних правых позициях; если w /, то выводятся w старших байт. [9]

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

Текстовые ( Memo) - символьные данные, длина которых не определена заранее. [11]

Символьные поля задают форму вывода символьных данных. [12]

Этот формат используется для передачи символьных данных. [13]

Команда TR используется для просмотра символьных данных и замены символов, содержащихся в исходном поле, на другие. [14]