Представление целых чисел в
компьютере.
Целые числа являются простейшими числовыми данными, с которыми оперирует ЭВМ. Для целых чисел существуют два представления: беззнаковое (только для неотрицательных целых чисел) и со знаком. Очевидно, что отрицательные числа можно представлять только в знаковом виде. Целые числа в компьютере хранятся в формате с фиксированной запятой.
Для беззнакового представления все разряды ячейки отводятся под представление самого числа. Например, в байте (8 бит) можно представить беззнаковые числа от 0 до 255. Поэтому, если известно, что числовая величина является неотрицательной, то выгоднее рассматривать её как беззнаковую.
Для представления со знаком самый старший (левый) бит отводится под знак числа, остальные разряды - под само число. Если число положительное, то в знаковый разряд помещается 0, если отрицательное - 1. Например, в байте можно представить знаковые числа от -128 до 127.
Прямой код числа.
Представление числа в привычной форме "знак" - "величина", при которой старший разряд ячейки отводится под знак, а остальные - под запись числа в двоичной системе, называется прямым кодом двоичного числа. Например, прямой код двоичных чисел 1001 и -1001 для 8-разрядной ячейки равен 00001001 и 10001001 соответственно.
Положительные числа в ЭВМ всегда представляются с помощью прямого кода. Прямой код числа полностью совпадает с записью самого числа в ячейке машины. Прямой код отрицательного числа отличается от прямого кода соответствующего положительного числа лишь содержимым знакового разряда. Но отрицательные целые числа не представляются в ЭВМ с помощью прямого кода, для их представления используется так называемый дополнительный код.
Дополнительный код положительного числа равен прямому коду этого числа. Дополнительный код отрицательного числа m равен 2k-|m|, где k - количество разрядов в ячейке.
Как уже было сказано, при представлении неотрицательных чисел в беззнаковом формате все разряды ячейки отводятся под само число. Например, запись числа 243=11110011 в одном байте при беззнаковом представлении будет выглядеть следующим образом:
1 1 1 1 0 0 1
При представлении целых чисел со знаком старший (левый) разряд отводится под знак числа, и под собственно число остаётся на один разряд меньше. Поэтому, если приведённое выше состояние ячейки рассматривать как запись целого числа со знаком, то для компьютера в этой ячейке записано число -13 (243+13=256=28).
Но если это же отрицательное число записать в ячейку из 16-ти разрядов, то содержимое ячейки будет следующим:
1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1
Обратный код положительного двоичного числа совпадает с прямым
кодом. Для отрицательного числа все цифры числа заменяются на противоположные (1
на 0, 0 на 1), а в знаковый разряд заносится единица.
Вопрос 8 (Системы счисления по основанию 2, 8, 10, 16. Представление
целых неотрицательных и отрицательных чисел в ЭВМ. Прямой, обратный и
дополнительный коды. Примеры прямого, обратного и дополнительного кодов
восьмибитового положительного и отрицательного целого числа. Запишите в
десятичной с.с. целое число по его дополнительному коду.)
Система
счисления — это способ записи чисел с помощью заданного набора
специальных знаков (цифр).
Существуют
системы позиционные и непозиционные. Основание позиционной системы счисления — это
количество различных знаков или символов, используемых для изображения цифр в
данной системе.
Десятичная система счисления
Эта
система пришла в Европу из Индии, где она появилась не позднее VI века н. э. В
этой системе 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, но информацию несет не
только цифра, но и место, на котором цифра стоит (то есть ее позиция). В десятичной системесчисления особую роль играют число 10
и его степени; 10, 100, 1000 и т. д. Крайняя правая цифра числа показывает
число единиц, вторая справа — число десятков, следующая — число сотен и т. д.
Причина наибольшей распространенностидесятичной системы счисления состоит
в том, что первым счетным аппаратом человека являлись его руки. Число пальцев и
стало отправным пунктом для системы счета.
Двоичная система счисления
В
этой системе всего две цифры — 0 и 1. Особую роль здесь играет число 2 и его
степени: 2, 4, 8 и т. д. Крайняя правая цифра числа показывает число единиц,
следующая цифра — число двоек, следующая — число четверок и т. д. Двоичная система счисления позволяет закодировать
любое натуральное число — представить его в виде последовательности нулей
и единиц. В двоичном виде можно представлять не только числа, но и любую другую
информацию: тексты, картинки, фильмы и аудиозаписи. Инженеров двоичное
кодирование привлекает тем, что легко реализуется технически.
Восьмеричная система счисления
В
этой системе счисления 8 цифр: 0, 1, 2, 3, 4, 5, 6, 7. Цифра 1, указанная в
самом младшем разряде, означает — как и в десятичном числе — просто единицу. Та
же цифра 1 в следующем разряде означает 8, в следующем 64 и т. д. Число 100
(восьмеричное) есть не что иное, как 64 (десятичное). Чтобы перевести в
двоичную систему, например, число 611 (восьмеричное), надо заменить каждую
цифру эквивалентной ей двоичной триадой (тройкой цифр). Легко догадаться, что
для перевода многозначного двоичного числа в восьмеричную систему нужно разбить
его на триады справа налево и заменить каждую триаду соответствующей
восьмеричной цифрой.
Шестнадцатеричная система счисления
Запись
числа в восьмеричной системе счисления достаточно компактна, но еще компактнее
она получается в шестнадцатеричной системе. В качестве первых 10 из 16
шестнадцатеричных цифр взяты привычные цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, а
вот в качестве остальных 6 цифр используют первые буквы латинского алфавита: А,
В, С, D, Е, F. Цифра 1, записанная в самом младшем разряде, означает просто
единицу. Та же цифра 1 в следующем разряде — 16 (десятичное), в следующем — 256
(десятичное) и т. д. Цифра F, указанная в самом младшем разряде, означает 15
(десятичное). Перевод из шестнадцатеричной системы в двоичную и обратно
производится аналогично тому, как это делается для восьмеричной системы.
Представление
целых чисел
Для
представления чисел в ЭВМ обычно используют битовые наборы — последовательности
нулей и единиц фиксированной длины. Организовать обработку наборов
фиксированной длины технически легче, чем наборов переменной длины. Позиция в
битовом наборе называется разрядом. В ЭВМ разрядом называют также часть
регистра (или ячейки памяти), хранящую один бит.
Положительные
целые числа ( и число 0 )
Положительные
числа в прямом, обратном и
дополнительном кодах изображаются одинаково — цифровая часть содержит
двоичную запись числа, в знаковом разряде содержится 0. Например, для k = 8: