Александр Борисович Крупник - Изучаем Си
Название: | Изучаем Си | |
Автор: | Александр Борисович Крупник | |
Жанр: | C, C++, C# | |
Изадано в серии: | неизвестно | |
Издательство: | Питер | |
Год издания: | 2001 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! Помощь сайту: донат на оплату сервера |
Краткое содержание книги "Изучаем Си"
Аннотация к этой книге отсутствует.
Читаем онлайн "Изучаем Си". [Страница - 3]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (14) »
которых находится в одном из
двух состояний: верхнем (его часто обозначают единицей) или
нижнем (его обозначают нулем). В ячейке машины таких
переключателей, как правило, восемь (каждый переключатель
называют битом и говорят, что в ячейке 8 бит или 1 байт). То,
что мог бы увидеть мальчик, открыв дверцу ячейки, показано
на рис. 1.1
Рис. 1.1. Внутренности ячейки
Чтобы не рисовать каждый раз внутренности ячейки,
положение переключателей обозначают цифрами. Содержимое
ячейки, показанное на рис. 1.1, может быть представлено в
виде последовательности нулей и единиц:
1 0 0 0 1 1 0 0
Попробуем подсчитать, сколько разных чисел способна
вместить такая ячейка. Для этого вообразим ячейку, в которой
всего один переключатель c двумя состояниями: 1 и 0 (ВЕРХ и
НИЗ). Значит, в такой ячейке могут храниться два числа. Если
теперь добавить к ячейке еще один переключатель, число ее
состояний удвоится: теперь на каждое состояние первого
переключателя приходится два состояния второго. Значит, в
ячейке из двух переключателей всего 4 состояния, в ячейке из
4
трех переключателей — 8 (для каждого из четырех состояний,
в которых может находиться ячейка из двух переключателей,
есть два состояния третьего переключателя), а в ячейке из
восьми переключателей (битов) число возможных состояний
уже 2×2×2×2×2×2×2×2=256.
Значит, в ячейку из восьми бит можно записать числа от 0 до
255 (всего 256). Чтобы это сделать, можно, например,
пронумеровать все состояния ячейки и считать, что 57-е
состояние соответствует числу 57. Но проще воспользоваться
позиционным представлением чисел, с объяснения которого
начинается школьный курс информатики. Суть его в том, что
каждому биту приписывается определенный вес: крайний
правый бит это 1(20), второй справа бит — 2 (21),третий справа
— 4 (22), четвертый — 8 (23), пятый — 16 (24), шестой — 32
(25), седьмой — 64 (27), восьмой — 128 (28). Как видим, вес
каждого бита — это двойка, возведенная в степень, показатель
которой равен расстоянию от правого края числа. Первый
справа бит находится на нулевом расстоянии и поэтому его вес
равен 20. Вес второго справа бита равен 21 и т.д. Чтобы понять,
какое число записано в ячейке, нужно просуммировать
произведения весов на значения самих битов. Так, число
10000001 равно
1*28+0*27+0*26+0*25+0*240*23+0*22+0*21+1*20= 128+1=129,
а число 01010101 равно 64+16+4+1=85.
Когда в предыдущем разделе нашему мальчику нужно было
поместить в ячейку 1 число 2, он, открыв дверцу ячейки, видел
перед собой не просто ящик с клочком бумаги, а набор
переключателей, положение которых может быть любым
(говорят, что в этом случае ячейка содержит «мусор»). Задача
мальчика (поместить число 2 в ячейку 1) состоит в том, чтобы
установить второй справа переключатель в верхнее
положение, все же остальные — в нижнее. Это и будет
записью числа 2 в ячейку 1. В результате выполнения первой
программы в ячейке 3 окажется число пять, то есть 4+1:
00000101.
Теперь мы понимаем, что внутренности ячейки памяти
выглядят всегда как последовательность нулей и единиц,
5
независимо от того, что в них находится: число, буква или
адрес другой ячейки. Значит, для правильного выполнения
программы процессор должен знать, данные какого типа
хранятся в ячейках, и в соответствии с этим выполнять свою
работу.
Наш воображаемый мальчик узнавал о типе хранящихся в
ячейке данных из самой программы. Если он встречал команду
«поместить число 2 в ячейку 1», то устанавливал в верхнее
положение второй переключатель справа, остальные же
устанавливал в нижнее (или нулевое) положение. При
выполнении команды «поместить знак ‘2’, в ячейку 1» мальчик
поместит в ячейку число 50, то есть 00110010, потому что
знаки представляются в машине не так, как цифры.
Итак, в ячейках памяти есть только двоичные цифры, но в
зависимости от того, что (какой тип данных) хранится в
ячейке, эти цифры будут разными. С каждой ячейкой памяти
связан определенный тип.
Программирование и трансляторы
Не знаю, как вам, а мне уже становится жаль нашего мальчика
— ведь ему приходится бегать от ячейки к ячейке, читать
сначала команды, потом обращаться к ячейкам с данными,
снова переходить к командам. Возможно, малый рост не
позволяет ему добраться до всех ячеек, и ему приходится
двигать тяжелую приставную лестницу. И все это без
малейшего перерыва, пока не кончится программа.
Впрочем, жалость --">
двух состояний: верхнем (его часто обозначают единицей) или
нижнем (его обозначают нулем). В ячейке машины таких
переключателей, как правило, восемь (каждый переключатель
называют битом и говорят, что в ячейке 8 бит или 1 байт). То,
что мог бы увидеть мальчик, открыв дверцу ячейки, показано
на рис. 1.1
Рис. 1.1. Внутренности ячейки
Чтобы не рисовать каждый раз внутренности ячейки,
положение переключателей обозначают цифрами. Содержимое
ячейки, показанное на рис. 1.1, может быть представлено в
виде последовательности нулей и единиц:
1 0 0 0 1 1 0 0
Попробуем подсчитать, сколько разных чисел способна
вместить такая ячейка. Для этого вообразим ячейку, в которой
всего один переключатель c двумя состояниями: 1 и 0 (ВЕРХ и
НИЗ). Значит, в такой ячейке могут храниться два числа. Если
теперь добавить к ячейке еще один переключатель, число ее
состояний удвоится: теперь на каждое состояние первого
переключателя приходится два состояния второго. Значит, в
ячейке из двух переключателей всего 4 состояния, в ячейке из
4
трех переключателей — 8 (для каждого из четырех состояний,
в которых может находиться ячейка из двух переключателей,
есть два состояния третьего переключателя), а в ячейке из
восьми переключателей (битов) число возможных состояний
уже 2×2×2×2×2×2×2×2=256.
Значит, в ячейку из восьми бит можно записать числа от 0 до
255 (всего 256). Чтобы это сделать, можно, например,
пронумеровать все состояния ячейки и считать, что 57-е
состояние соответствует числу 57. Но проще воспользоваться
позиционным представлением чисел, с объяснения которого
начинается школьный курс информатики. Суть его в том, что
каждому биту приписывается определенный вес: крайний
правый бит это 1(20), второй справа бит — 2 (21),третий справа
— 4 (22), четвертый — 8 (23), пятый — 16 (24), шестой — 32
(25), седьмой — 64 (27), восьмой — 128 (28). Как видим, вес
каждого бита — это двойка, возведенная в степень, показатель
которой равен расстоянию от правого края числа. Первый
справа бит находится на нулевом расстоянии и поэтому его вес
равен 20. Вес второго справа бита равен 21 и т.д. Чтобы понять,
какое число записано в ячейке, нужно просуммировать
произведения весов на значения самих битов. Так, число
10000001 равно
1*28+0*27+0*26+0*25+0*240*23+0*22+0*21+1*20= 128+1=129,
а число 01010101 равно 64+16+4+1=85.
Когда в предыдущем разделе нашему мальчику нужно было
поместить в ячейку 1 число 2, он, открыв дверцу ячейки, видел
перед собой не просто ящик с клочком бумаги, а набор
переключателей, положение которых может быть любым
(говорят, что в этом случае ячейка содержит «мусор»). Задача
мальчика (поместить число 2 в ячейку 1) состоит в том, чтобы
установить второй справа переключатель в верхнее
положение, все же остальные — в нижнее. Это и будет
записью числа 2 в ячейку 1. В результате выполнения первой
программы в ячейке 3 окажется число пять, то есть 4+1:
00000101.
Теперь мы понимаем, что внутренности ячейки памяти
выглядят всегда как последовательность нулей и единиц,
5
независимо от того, что в них находится: число, буква или
адрес другой ячейки. Значит, для правильного выполнения
программы процессор должен знать, данные какого типа
хранятся в ячейках, и в соответствии с этим выполнять свою
работу.
Наш воображаемый мальчик узнавал о типе хранящихся в
ячейке данных из самой программы. Если он встречал команду
«поместить число 2 в ячейку 1», то устанавливал в верхнее
положение второй переключатель справа, остальные же
устанавливал в нижнее (или нулевое) положение. При
выполнении команды «поместить знак ‘2’, в ячейку 1» мальчик
поместит в ячейку число 50, то есть 00110010, потому что
знаки представляются в машине не так, как цифры.
Итак, в ячейках памяти есть только двоичные цифры, но в
зависимости от того, что (какой тип данных) хранится в
ячейке, эти цифры будут разными. С каждой ячейкой памяти
связан определенный тип.
Программирование и трансляторы
Не знаю, как вам, а мне уже становится жаль нашего мальчика
— ведь ему приходится бегать от ячейки к ячейке, читать
сначала команды, потом обращаться к ячейкам с данными,
снова переходить к командам. Возможно, малый рост не
позволяет ему добраться до всех ячеек, и ему приходится
двигать тяжелую приставную лестницу. И все это без
малейшего перерыва, пока не кончится программа.
Впрочем, жалость --">
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (14) »
Книги схожие с «Изучаем Си» по жанру, серии, автору или названию:
Дженнифер Грин, Эндрю Стиллмен - Изучаем C# Жанр: C, C++, C# Год издания: 2014 Серия: Head First O'Reely |
Ферроне Харрисон - Изучаем C# через разработку игр на Unity Жанр: C, C++, C# Год издания: 2022 Серия: Библиотека программиста |
Дженнифер Грин, Эндрю Стиллмен - Изучаем C# Жанр: C, C++, C# Год издания: 2022 Серия: Head First O’Reilly |
Александр Борисович Крупник - Изучаем Ассемблер Жанр: Assembler Год издания: 2005 Серия: КомпАс (Школьный клуб Компьютерный ас) |