Найдите число беззнакового целого типа которое записано в 8 разрядной ячейке памяти компьютера так 11111100
Задание 1. Как в памяти компьютера представляются целые положительные и отрицательные числа?
Числа в памяти компьютера хранятся в ячейках, а минимальный размер одной ячейки – 8 битов (1 байт). Числа в двоичной системе счисления и записываются к правому краю и оставшиеся слева записываем нулями (чем левее разряд, тем он старше). Знак числа хранит самый старший разряд (первый по списку слева). Если стоит 0 – число положительное, если 1 – число отрицательное.Самое большое целое положительное число 011111112 = 12710
Задание 2. Укажите, каков был бы диапазон значений целых чисел, если бы для их хранения использовалась четырехразрядная ячейка.
Задание 3. Запишите внутреннее представление следующих десятичных чисел, используя восьмиразрядную ячейку: а) 32; б) –32; в) 102; г) –102; д) 126; е) –126.
а) 32 число положительное
3210 = 1000002
Ответ: 00100000
б) –32 число отрицательное
1) 3210 = 001000002
2) Обратный код: 11011111
3) Прибавим единицу: 11011111 + 1 = 11100000
Ответ: 11100000
в) 102 число положительное
10210 = 11001102
Ответ: 01100110
г) –102 число отрицательное
1) 10210 = 011001102
2) Обратный код: 10011001
3) Прибавим единицу: 10011001 + 1 = 10011010
Ответ: 10011010
д) 126 число положительное
12610 = 11111102
Ответ: 01111110
е) –126 число отрицательное
1) 12610 = 011111102
2) Обратный код: 10000001
3) Прибавим единицу: 10000001 + 1 = 10000010
Ответ: 10000010
Задание 4. Определите, каким десятичным числам соответствуют следующие двоичные коды восьмиразрядного представления целых чисел: а) 00010101; б) 11111110; в) 00111111; г) 10101010.
а) 00010101 число положительное
101012 = 1*2 4 + 1*2 2 + 1 = 16 + 4 + 1 = 2110
Ответ: 21
б) 11111110 число отрицательное
1) Вычтем единицу: 11111110 – 1 = 11111101
2) Обратный код: 00000010
3) 102 = 210
Ответ: –2
в) 00111111 число положительное
1111112 = 1*2 5 + 1*2 4 + 1*2 3 + 1*2 2 + 1*2 1 + 1 = 32 + 16 + 8 + 4 + 2 + 1 = 6110
Ответ: 61
г) 10101010 число отрицательное
1) Вычтем единицу: 10101010 – 1 = 10101001
2) Обратный код: 01010110
3) 10101102 = 1*2 6 + 1*2 4 + 1*2 2 + 2 = 64 + 16 + 4 + 2 = 8610
Ответ: –86
Тебе известно, что компьютер работает только с двоичным кодом. \(0\) и \(1\) обозначают два устойчивых состояния: вкл/выкл, есть ток/нет тока и т. д. Оперативная память представляет собой контейнер, который состоит из ячеек. В каждой ячейке хранится одно из возможных состояний: \(0\) или \(1\). Одна ячейка — \(1\) бит информации или представляет собой разряд некоторого числа.
Целые числа в памяти компьютера хранятся в формате с фиксированной запятой . Такие числа могут храниться в \(8\), \(16\), \(32\), \(64\)-разрядном формате.
Для целых неотрицательных чисел в памяти компьютера выделяется \(8\) ячеек (бит) памяти.
Минимальное число для такого формата: \(00000000\). Максимальное: \(11111111\).
Переведём двоичный код в десятичную систему счисления и узнаем самое большое число, которое можно сохранить в восьмибитном формате.
1 × 2 7 + 1 × 2 6 + 1 × 2 5 + 1 × 2 4 + 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 = 255 10 .
Если целое неотрицательное число больше \(255\), то оно будет храниться в \(16\)-разрядном формате и занимать \(2\) байта памяти, то есть \(16\) бит.
Подумай! Какое самое большое число можно записать в \(16\)-разрядном формате?
Чем больше ячеек памяти отводится под хранение числа, тем больше диапазон значений.
В таблице указаны диапазоны значений для \(8\), \(16\) и \(32\)-разрядных форматов.
Для \(n\)-разрядного представления диапазон чисел можно вычислить следующим образом: от \(0\) до 2 n − 1 .
Запишем целое беззнаковое число \(65\) в восьмиразрядном представлении. Достаточно перевести это число в двоичный код.
Это же число можно записать и в \(16\)-разрядном формате.
Для целых чисел со знаком в памяти отводится \(2\) байта информации (\(16\) бит). Старший разряд отводится под знак: \(0\) — положительное число; \(1\) — отрицательное число. Такое представление числа называется прямым кодом.
Для хранения отрицательных чисел используют дополнительный и обратный коды, которые упрощают работу процессора. Но об этом ты узнаешь в старших классах.
Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.
Информатика. 10 класса. Босова Л.Л. Оглавление
§13. Представление чисел в компьютере
Самым первым видом данных, с которыми начали работать компьютеры, были числа. ЭВМ первого поколения могли производить только математические расчёты (вычисления).
Из курса информатики основной школы вы помните, что компьютеры работают с целыми и вещественными числами. Их представление в памяти осуществляется разными способами.
13.1. Представление целых чисел
Во многих задачах, решаемых на компьютере, обрабатываются целочисленные данные. Прежде всего, это задачи экономического характера, при решении которых данными служат количества акций, сотрудников, деталей, транспортных средств и др. Целые числа используются для обозначения даты и времени, для нумерации различных объектов: элементов массивов, записей в базах данных, машинных адресов и т. д. По своей природе множество целых чисел дискретно, т. к. состоит из отдельных элементов.
И хотя любое целое число можно рассматривать как вещественное, но с нулевой дробной частью, предусмотрены специальные способы представления целых чисел. Это обеспечивает: эффективное расходование памяти, повышение быстродействия, повышение точности вычислений за счёт введения операции деления нацело с остатком.
Для компьютерного представления целых чисел используется несколько различных способов, отличающихся друг от друга количеством разрядов (под целые числа обычно отводится 8, 16, 32 или 64 разряда) и наличием или отсутствием знакового разряда.
Беззнаковое представление можно использовать только для неотрицательных целых чисел.
Для получения компьютерного представления беззнакового целого числа в n-разрядной ячейке памяти достаточно перевести его в двоичную систему счисления и, при необходимости, дополнить полученный результат слева нулями до n-разрядов.
Например, десятичные числа 130 и 39 в восьмиразрядном представлении будут иметь вид:
Понятно, что существуют ограничения на числа, которые могут быть записаны в n-разрядную ячейку памяти. Максимальное значение целого неотрицательного числа достигается в случае, когда во всех разрядах ячейки хранятся единицы. Для n-разрядного представления оно будет равно 2 n -1. Минимальное число соответствует n нулям, хранящимся в n разрядах памяти, и равно нулю. Далее приведены диапазоны значений для беззнаковых целых n-разрядных чисел:
При знаковом представлении целых чисел старший разряд ячейки отводится под знак (0 — для положительных, 1 — для отрицательных чисел), а остальные разряды — под цифры числа.
Представление числа в привычной для человека форме «знак-величина», при которой старший разряд ячейки отводится под знак, а остальные разряды — под цифры числа, называется прямым кодом.
Например, прямые коды чисел 48 и -52 для восьмиразрядной ячейки равны:
В математике множество целых чисел бесконечно.
Компьютер работает с ограниченным множеством целых чисел.
Прямой код положительного числа отличается от прямого кода равного по абсолютной величине отрицательного числа только содержимым знакового разряда.
В прямом коде числа можно хранить, но выполнение арифметических операций над числами в прямом коде затруднено — оно требует более сложной архитектуры центрального процессора, «умеющего» выполнять не только сложение, но и вычитание, а также «знающего» особый алгоритм обработки не имеющего «веса» знакового разряда. Этих трудностей позволяет избежать использование дополнительного кода.
Чтобы понять сущность дополнительного кода, рассмотрим работу реверсивного счётчика, последовательность показаний которого можно представить в виде замкнутого кольца из чисел (рис. 3.5).
Рис. 3.5. Реверсивный счётчик
При возрастании показаний счётчика до максимального, например до 999, следующими его состояниями должны быть 1000, 1001, 1002 и т. д. Но для изображения старшей единицы в счётчике не хватает разряда, происходит переполнение разрядной сетки. Поэтому мы увидим 000, 001, 002 и т. д.
При убывании показаний счётчика после состояния 000 будут идти 999, 998, 997 и т. д. Но после достижения нуля последовательное вычитание единицы должно давать -1, -2, -3 и т. д.
Будем рассматривать числа 999, 998, 997 как коды чисел -1, -2, -3 и проверим на их примере соотношение: у + (-у) = 0:
1 + 999 = 1000;
2 + 998 = 1000;
3 + 997 = 1000.
С учётом того что единица переполнения теряется, мы, сложив число и код противоположного ему числа, получаем ноль!
Вот ещё несколько примеров:
5-2 = 5 + [-2] = 5 + 998 = 1003;
7-5 = 7 + [-5] = 7 + 995 = 1002.
Для устранения неоднозначности в кольце будем считать половину состояний (0-499) кодами нуля и положительных чисел, а оставшуюся половину (500-999) — кодами отрицательных чисел.
Таким образом, дополнительный код положительного числа совпадает с этим числом, а для отрицательного числа он равен дополнению его величины до числа q n , возникающего при переполнении разрядной сетки. Здесь q — основание системы счисления, n — число разрядов в разрядной сетке.
Рассмотрим алгоритм получения дополнительного n-разрядного кода отрицательного числа:
1) модуль числа представить прямым кодом в n двоичных разрядах;
2) значения всех разрядов инвертировать (все нули заменить единицами, а единицы — нулями);
3) к полученному представлению, рассматриваемому как n-разрядное неотрицательное двоичное число, прибавить единицу.
Пример 1. Найдём 16-разрядный дополнительный код отрицательного числа -201710.
Использование дополнительного кода позволяет свести операцию вычитания чисел к операции поразрядного сложения кодов этих чисел.
Выполним эту операцию в 16-разрядных машинных кодах.
Нам потребуются прямой код числа 48 и дополнительный код числа -2017.
Рассмотрим полученный результат. Это отрицательное число (об этом говорит 1 в знаковом разряде), представленное в дополнительном коде. Перейдём к прямому коду модуля соответствующего числа, по которому сможем восстановить десятичное представление результата.
Прямой код можно получить из дополнительного кода, если применить к нему операцию инвертирования и прибавить единицу.
Получаем: -111101100012 = -1969.
13.2. Представление вещественных чисел
В математике множество вещественных чисел непрерывно, бесконечно и не ограничено.
Попробуйте обосновать это утверждение.
Вещественные числа записываются в естественной или в экспоненциальной форме.
В жизни мы чаще пользуемся естественной формой записи чисел, при которой: число представляется последовательностью десятичных цифр со знаком плюс или минус, знак плюс может опускаться, для разделения целой и дробной частей числа используется запятая.
Например: 12,34; 0,0056; -708,9.
В экспоненциальной форме вещественное число а представляется как а = ± m • q p , где m — мантисса числа, q — основание системы счисления, р — порядок числа.
Например, длину некоторого отрезка, равного 47,8 см, можно записать так:
1) 478 • 10 -1 см;
2) 47,8 • 10 0 см;
3) 4,78 • 10 1 см;
4) 0,478 • 10 2 см;
5) 0,000478 • 10 5 см.
Такое многообразие вариантов записи в экспоненциальной форме одного и того же числа не всегда удобно. Для однозначного представления вещественных чисел в компьютере используется нормализованная форма.
Нормализованная запись отличного от нуля вещественного числа 1) — это запись вида а = ± m • q p , где р — целое число (положительное, отрицательное или ноль), m — дробь, целая часть которой содержит одну значащую (ненулевую) цифру, т. е. 1 ≤ m < q.
1) Стандарт IEEE 754.
Примеры нормализации чисел:
1) 31,415926 = 3,1415926 • 10 1 ;
2) 1000 = 1,0 • 10 3 ;
3) 0,123456789 = 1,23456789 • 10 -1 ;
4) 0,00001078 = 1,078 • 108 -5 ;
5) 1000,00012 = 1,00000012 • 102 11 ;
6) AB,CDEF16 = A,BCDEF16 • 1016 1 .
Диапазон вещественных чисел в памяти компьютера очень широк, но, тем не менее, ограничен. Множество вещественных чисел, которые могут быть представлены в компьютере, конечно.
Поясним это на примере калькулятора, который производит вычисления в десятичной системе счисления. Пусть это будет калькулятор с десятью знакоместами на дисплее:
• 6 знакомест отводится под мантиссу (одно знакоместо отводится под знак мантиссы, четыре — под цифры мантиссы, одно — под точку, разделяющую целую и дробную части мантиссы);
• одно знакоместо отводится под символ «Е»;
• три знакоместа отводятся под порядок (одно — под знак порядка, два — под цифры порядка).
У калькуляторов первая значащая цифра, с которой и начинается мантисса, изображается перед точкой.
Число 12,34 в таком калькуляторе будет представлено как +1.234Е+01.
Число 12,35 будет представлено как + 1.235Е+01.
Как известно, между числами 12,34 и 12,35 находится бесконечное множество вещественных чисел, например: 12,341; 12,3412; 12,34123 и т. д.
Каждое из этих чисел в нашем калькуляторе будет представлено как + 1.234Е+01. Для последних разрядов у нас просто не хватает знакомест! Аналогичная ситуация имеет место и в компьютерном представлении вещественных чисел, независимо от того, ячейки какой разрядности там использованы.
Получается, что точно мы можем представить в компьютере лишь некоторую конечную часть множества вещественных чисел, а остальные числа — лишь приближённо.
Таким образом, множество вещественных чисел, представляемых в компьютере, дискретно, конечно и ограничено.
САМОЕ ГЛАВНОЕ
В математике множество целых чисел дискретно, бесконечно и не ограничено.
Для компьютерного представления целых чисел используется несколько различных способов, отличающихся друг от друга количеством разрядов (8, 16, 32 или 64 разряда) и наличием или отсутствием знакового разряда. В любом случае компьютерное представление целых чисел дискретно, конечно и ограничено.
В математике множество вещественных чисел непрерывно, бесконечно и не ограничено.
Для компьютерного представления вещественных чисел используется нормализованная запись вещественного числа а = ± m • q p , где q — основание системы счисления, р — целое число (положительное, отрицательное или ноль), m — дробь, целая часть которой содержит одну значащую (ненулевую) цифру, т. е. 1 ≤ m < q.
Компьютерное представление вещественных чисел дискретно, конечно и ограничено.
Вопросы и задания
*7. Найдите десятичные эквиваленты чисел, представленных в дополнительном коде: 1) 00000100; 2) 11111001.
8. Для хранения целого числа со знаком в компьютере используется два байта. Сколько единиц содержит внутреннее представление числа -101, записанного:
1) в прямом коде;
2) в дополнительном коде?
9. Вычислите с помощью калькулятора (приложение Windows) в режиме «Программист» следующие примеры:
Как вы можете объяснить полученные результаты?
10. Запишите десятичные числа в нормализованной форме:
1) 217,934; 2) 75321; 3) 10,0101; 4) 200450.
11. Сравните следующие числа:
1) 318,4785 • 10 9 и 3,184785 • 10 11 ;
2) 218,4785 • 10 -3 и 1847,85 • 10 -4 .
12. Выполните операцию сложения:
1) 0,397621 • 10 3 + 0,2379 • 10 1 ;
2) 0,251452 • 10 -3 + 0,125111 • 10 -2 .
13. Чем ограничивается диапазон представимых в памяти компьютера вещественных чисел?
14. Почему множество вещественных чисел, представимых в памяти компьютера, дискретно, конечно и ограничено?
*15. Попытайтесь самостоятельно сформулировать основные принципы представления данных в компьютере.
Целые числа являются самыми простыми числовыми данными, с которыми работает компьютер. Целые числа хранятся в двух возможных видах: беззнаковом (для положительных целых чисел) и со знаком (для отрицательных чисел). Целые числа в компьютере хранятся в формате с фиксированной запятой.
Беззнаковые целые числа
Для беззнакового представления все разряды ячейки отводятся под представление самого числа. Поэтому, если известно, что число положительное, то выгоднее рассматривать его как беззнаковое.
Положительные целые числа занимают в памяти компьютера $1$ или $2$ байта.
В $1$-байтовом формате целые числа принимают значения от $0$ до $255$.
В $2$-байтовом формате от $0$ до $65535$.
Число $30_=0001 \ 1110_2$ в $1$-байтовом формате:
Число $30_=0001 \ 1110_2$ в 2-байтовом формате:
Алгоритм представления в компьютере беззнаковых целых чисел
Беззнаковое целое положительное число перевести в двоичную систему счисления.
Записать число в $8$ разрядах так, чтобы младший разряд числа соответствовал младшему разряду ячейки.
Дополнить число, если необходимо, слева нулями до нужного числа разрядов ($8$-ми, $16$-ти, $32$-х).
Дополним до $8$-ми разрядов:
Целые числа со знаком
Целые числа со знаком (отрицательные) занимают в памяти компьютера $1$, $2$ или $4$ байта, при этом самый старший (знаковый) разряд содержит информацию о знаке числа.
Если число положительное, то в знаковом разряде помещается $«0»$, если число отрицательное -- $«1»$.
Целые числа со знаком в разных форматах принимают соответствующие значения:
в $1$-байтовом формате -- от $-128$ до $127$;
в $2$-байтовом формате -- от $-32768$ до $32767$;
в $4$-байтовом формате -- от $-2147483648$ до $2147483647$.
Готовые работы на аналогичную тему
Получить выполненную работу или консультацию специалиста по вашему учебному проекту Узнать стоимостьДля хранения целых чисел со знаком отводится $1$ разряд для знака, а остальные -- для цифр модуля числа.
Например, для хранения числа в $1$-байтовом формате ($8$ бит) $1$ разряд отводится для знака числа, остальные $7$ разрядов -- для модуля числа.
Для хранения целых чисел со знаком применяется $3$ формы кода:
Особенно широко используется обратный и дополнительный код, которые позволяют существенно облегчить элементарные операции: сложение, вычитание, умножение и деление.
Положительные числа в прямом, обратном и дополнительном кодах изображают двоичными кодами с цифрой $0$ в знаковом разряде.
У положительных чисел все коды одинаковы, т.е. прямой, обратный и дополнительный коды равны между собой.
Отрицательные числа в прямом, обратном и дополнительном кодах изображаются по-разному.
Прямой код числа -- это его модуль, переведенный в двоичную систему с измененным старшим битом, в зависимости от знака.
В знаковом разряде помещается цифра $1$, а в разрядах цифровой части числа -- двоичный код модуля числа.
Числа в компьютере хранятся целыми байтами; $1$, $2$, $4$ или $8$. От количества памяти зависит количество разрядов данного числа. В $1$ байте их $8$, в $2$ - $16$ и т.д. Поэтому представляемые числа нужно дополнять нулями до необходимого количества.
Если числа будут занимать в памяти $2$ байта, то знаковым все равно будет самый старший, то есть: $-30_=1001 \ 1110_2= 1000 \ 0000 \ 0001 \ 1110_2$
Обратный код. Для операций с отрицательными числами обычно не используется прямой код, поэтому для облегчения алгоритмов выполнения арифметических операций был создан обратный код.
Для получения обратного кода выполняется инвертирование всех цифр двоичного кода модуля числа: $0$ заменяется на $1$, а $1$ - на $0$. Знак разряда остается без изменений.
Дополнительный код
Для получения дополнительного кода числа к обратному коду добавляется единица к его младшему разряду.
Алгоритм получения дополнительного кода отрицательного числа
Модуль отрицательного числа представить прямым кодом.
Значение всех бит инвертировать: все $0$ заменить на $1$, а $1$ на $0$ (кроме значения знакового разряда).
К младшему разряду полученного обратного кода прибавить единицу.
Получим $8$-разрядный дополнительный код числа $-30$:
$00011110 - \ число \mid -30\mid =30$ в прямом коде
$11100001 - \ число \ -30$ в обратном коде
$11100010 - \ число \ -30$ в дополнительном коде
Целые отрицательные числа при вводе в компьютер преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся и принимают участие в операциях. При выводе их из компьютера происходит обратное преобразование в отрицательные десятичные числа.
Читайте также: