Array M. УЭИТ - Язык Си - руководство для начинающих

Здесь есть возможность читать онлайн «Array M. УЭИТ - Язык Си - руководство для начинающих» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 1988, ISBN: 1988, Издательство: Мир, Жанр: Программирование, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Язык Си - руководство для начинающих: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Язык Си - руководство для начинающих»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

M. УЭИТ   С. ПРАТА    Д. МАРТИН
Язык Си — руководство для начинающих

Язык Си - руководство для начинающих — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Язык Си - руководство для начинающих», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Применение

Эти операции выполняют сдвиг, а также эффективное умножение и деление на степени 2:

number << n умножает numberна 2 в n-й степени

number >> n делит numberна 2 в n-й степени, если число неотрицательное.

Это аналогично соответствующему алгоритму для десятичной системы счисления, обеспечивающему сдвиг десятичной точки при умножении или делении на 10.

Поля

Второй способ манипуляции разрядами заключается в использовании поля. Полем считается последовательность соседних разрядов в числе типа intили unsigned int. Поле устанавливается при помощи определения структуры, в котором помечается каждое поле и определяется его размер. Следующее описание устанавливает четыре 1-разрядных поля:

struct {

unsigned autfd: 1;

unsigned bldfc: 1;

unsigned undln: 1;

unsigned itals: 1;

} prnt;

Переменная prntсодержит теперь четыре 1-разрядных ноля. Обычную операцию принадлежности элемента структуры можно использовать для присвоения значении отдельным полям:

prnt.itals = 0;

prnt.undln = 1;

Поскольку каждое поле состоит только из одного разряда, мы можем использовать для присваивания лишь значение 0 или 1.

Переменная prntзапоминается в ячейке памяти, имеющей размер, равный длине числа типа int, но для нашего примера используется только четыре разряда.

Размер поля не ограничивается одним разрядом. Мы можем делать, например, так:

struct {

unsigned code1 : 2;

unsigned code2 : 2;

unsigned code3 : 8;

} prcode;

Таким путем создаются два 2-разрядных поля и одно 8-разрядное. Мы можем выполнять присваивания, подобные следующим:

prcode.code1 = 0;

prcode.code2 = 3;

prcode.code3 = 102;

Удостоверьтесь только, что значение нe превышает размер поля.

Что произойдет, если общее число объявленных вами разрядов превысит размер переменной типа int? В этом случае используется следующая ячейка памяти типа int. Одиночное поле не может перекрывать границу между двумя int, компилятор автоматически сдвигает определение перекрывающего поля таким образом, чтобы данное поле было выравнено по границе int. Если это происходит, он оставляет в первом intбезымянное "пустое место".

Вы можете заполнить структуру поля с безымянными пустыми местами, используя поле без имени. Применение поля без имени с размером 0 выравнивает очередное поле по границе следующего целого:

struct {

field1 : 1;

: 2;

field2 : 1;

: 0;

field3 : 1; } stuff;

Здесь есть 2-разрядный промежуток между stuff.field1и stuff.field2, a stuff.field3запоминается в следующем int.

Порядок размещения полей в intзависит от типа ЭВМ. В одних машинах поля располагаются слева направо, в других - справа налево.

ПРИЛОЖЕНИЕ Ж. ДВОИЧНЫЕ И ДРУГИЕ ЧИСЛА

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

В основе способа, который мы обычно используем для записи чисел, лежит число 10. Может быть, вы когда-то слышали, что число 3652 имеет 3 в позиции тысяч, 6 в позиции сотен, 5 в позиции десятков и 2 в позиции единиц. Поэтому мы можем представить число 3652 в виде

3 ´ 1000 + 6 ´ 100 + 5 ´ 10 + 2 ´ 1

Однако 1000 - это 10 в кубе, 100 - десять в квадрате, 10 - десять в первой степени, а 1, как принято в математике, 10 (или любое положительное число) в нулевой степени. Следовательно, мы можем записать 3652 как

3 ´ 10 3+ 6 ´ 10 2+ 5 ´ 10 1+ 2 ´ 10 0

Так как наша система записи чисел основывается на степенях десяти, мы можем сказать, что 3652 записывается по основанию 10.

Вероятно, мы создали такую систему потому, что имеем 10 пальцев на руках. Компьютер же, в каком-то смысле, имеет только два "пальца", поэтому его можно установить только в состояние 0 или 1 (выключено или включено). Это делает систему с основанием2 естественной для компьютера. Как она работает? Используются степени 2 вместо степеней 10. Например, такое двоичное число, как 1101, означало бы

1 ´ 2 3+ 1 ´ 2 2+ 0 ´ 2 1+ 1 ´ 2 0

В десятичной записи оно становится равным

1 ´ 8 + 1 ´ 4 + 0 ´ 2 + 1 ´ 1 = 13

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

Можно считать его 8 разрядов пронумерованными слева направо от 7 до 0. Такие "номера разрядов" соответствуют степеням 2. Представьте себе, что байт выглядит примерно так:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Язык Си - руководство для начинающих»

Представляем Вашему вниманию похожие книги на «Язык Си - руководство для начинающих» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Язык Си - руководство для начинающих»

Обсуждение, отзывы о книге «Язык Си - руководство для начинающих» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x