САЙТ
учителя информатики

ПЛОТНИКОВА СЕРГЕЯ НИКОЛАЕВИЧА

)

Теория

Тема 4. Системы счисления, используемые в компьютере

Дидактические единицы: числа; системы счисления; непозиционные системы счисления; позиционные системы счисления; двоичная система счисления; двоичная арифметика; недесятичные системы счисления; системы счисления, используемые в компьютере; представление чисел в памяти ЭВМ.

Системы счисления, используемые в компьютере

Математика (по словам Анри Пуанкаре) есть "искусство называть разные вещи одинаковыми именами". Французский математик имел в виду числа.

Числа

Чтобы иметь дело с числами, необходимо прежде всего уметь называть и записывать их. К представлениям о числе, исчислимости предметов люди приходят через иные представления - о том, что такое величина; количество; множество и единичность; сравнимость и несравнимость. В формировании представлений о числах участвуют операциия измерения, сводящаяся к отношениям "больше" или "меньше" для двух или более предметов; логическая операция "обобщение понятий".

Измерение величин есть соотнесение человеком размеров частей своего тела с другими предметами, своих шагов, прыжков с покрываемыми расстояниями. Измерение есть прикладывание человеком частей своего тела к измеряемому предмету. Например, русское слово "дюйм" происходит от голландского DUIM, буквально означающего "большой палец". Один дюйм равен 25,4 мм. Английский фут (FOOT переводится как "ступня") равен 304,8 мм.

САЖЕНЬ - русская мера длины - писалась иногда как "", что позволяет произвести это существительное от глагола "досягать, посягать". Сажень равнялась трём аршинам (аршин - тюркская мера длины, равная 71,12 см) или семи футам (2,1336 м). Известны также маховая сажень (расстояние между кончиками средних пальцев широко расставленных рук человека, равное 1,76 м) и косая сажень (расстояние от носка левой ноги прямо стоящего человека до кончика среднего пальца вытянутой сколь возможно вверх правой руки, равное 2,48 м). ЛОКОТЬ - древнерусская мера длины в 11-16 вв., равная 38-46 см (длине локтевой кости человека). В локтях отмеряли ткань.

ВЕРШОК - русская мера длины - первоначально равнялся длине фаланги указательного пальца, что составляло 13/4 дюйма (4,45 см). 4 вершка составляли ПЯДЬ (ЧЕТВЕРТЬ, ЧЕТЬ). Пядь - древнерусская мера длины, она равнялась 17,78 см, определялась как расстояние между концами растянутых пальцев руки (большого и указательного). Человек, измеряя, раздвигал свои пальцы подобно гусенице бабочки-пяденицы, движущейся по ветке или листу. Она меряет длиной собственного тела пройденный путь. Недаром латинское название её - геометрида, т.е землемерка. Похожим способом паломники-индуисты промеряют священный Ганг от истока до устья, ложась на берегу вдоль течения во всю длину собственного тела и делая засечку по темени на земле.

В древности жрецы Вавилонии однажды "заставили" само Солнце промерить свой путь по небу, ставя прутики-засечки, через которые диск нашей звезды переваливал свой диаметр. От восхода до заката светило откладывало длину своего диаметра по небосводу, "шагнув" по дуге в среднем 180 раз за светлое время суток. Жрецы предположили, что ночью от заката до восхода Солнце "шагало" столько же с обратной стороны неба. Так возникло деление круга на 360 градусов- "шагов" (по-латыни gradus и есть шаг).

Итак, величина предмета выражалась в мере прикладываемых к обмеряемому предмету мерок (длины, длительности, объёма). Эту меру мерок позже назвали числом.

В книге "Слово о словах" Э.Успенский пишет, что австралийский абориген не понимает, как можно "складывать" (сравнивать меж собой и уподоблять) пальмы и эвкалипты, потому что это разные виды, не похожие друг на друга. Что позволяет нам, людям, воспитанным в европейской мыслительной традиции, сравнивать 4 сосны и 3 берёзы? Только родовое понятие "деревья", обобщающее в нашем сознании предметы, разные обликом. Числа предметов возникают в сознании человека, когда наша мысль обращается к отдельным от других предметам.

Человек при счёте уподобляет предметы внешнего мира друг другу: палочки (камешки) становятся подобны плодам или животным, людям или горшкам. Если можно уподоблять предметы внешнего мира друг другу, то можно уподоблять предметы внешнего мира частям тела человека. Значит, основой для счисления (измерения) предметов служит анатомия человеческого тела. Числа возникают в психике человека вследствие моторных ощущений от загибающихся пальцев, шагающих ног и сопровождения словами этих загибаний или шагов.

Нужда, необходимость запомнить, зафиксировать число сосчитанных (измеренных) предметов, их величины, вело к называнию чисел, загибанию пальцев, счёту, сбору камешков, палочек, начертанию символов. Так появились символические записи, шифры, цифры - натурные, звуковые или писаные знаки чисел.

Итак, во внешнем мире существуют предметы, величины которых можно сравнивать. Числа изобретены человеком и существуют только в головах людей. Цифры - символические записи чисел, иначе: цифры - знаки чисел.

Способ наименования и записи чисел принято называть системой счисления. Иначе: системы счисления - это способ изображения чисел и соответствующие ему правила действия над числами.

СИСТЕМЫ СЧИСЛЕНИЯ (далее - СС)
НЕПОЗИЦИОННЫЕ СС (далее - НСС)
ПОЗИЦИОННЫЕ СС (далее - ПСС)
Единичная (система бирок, кипу, вампумов)

Кодовые СС
Древнеегипетская
Алфавитные
Римская
Византийская (славянская)
Индийская мультипликативная
Вавилонская
Традиционные p-ичные
Десятичная
Восьмеричная
Шестнадцатеричная
Троичная
Двоичная
Смешанные pq-ичные
Нетрадиционные
В НСС от положения знака в записи числа не зависит величина, которую он обозначает. В ПСС величина, обозначаемая цифрой в записи числа, зависит от её позиции (от разряда, в котором стоит знак числа).

Непозиционные (кодовые) системы счисления
Единичные СС (системы бирок).

Как только люди начали считать, у них появилась потребность в записи чисел. Находки археологов на стоянках первобытных людей свидетельствуют о том, что первоначально считаемые предметы отображались значками (бирками): зарубами, затесями, чертами, точками. Мешки зерна или корзины фруктов, связки сухой рыбы или кувшины вина изображалось нанесением чёрточек или засечек на какой-либо твердой поверхности: камне, глине, дереве (до изобретения бумаги было ещё очень далеко). Каждому предмету в такой записи соответствовала одна чёрточка. Археологами найдены такие "записи" при раскопках культурных слоёв. Учёные назвали этот способ записи чисел единичной (палочной) системой счисления.

В такой системе записи чисел (унарной) любое число образуется путём повторения одного знака - палочки, символизирующей единицу. Числа в такой системе счисления обозначалось с помощью строки, составленной из палочек, количество которых равнялось обозначаемому числу.

Неудобства такой системы записи чисел и ограниченность её применения очевидны: чем большее число надо записать, тем длиннее строка из палочек; при записи большого числа легко ошибиться - нанести лишнее количество палочек или, наоборот, не дописать палочки.

Можно предположить, что для облегчения счёта люди стали группировать предметы по 3, 5, 10 штук. И при записи стали использовать знаки, соответствующие группе из нескольких предметов. Так как люди, естественным образом, при подсчете использовали пальцы рук, то первыми появились знаки для обозначения групп предметов из 5 - 10 штук (единиц). И, таким образом, возникли уже более удобные системы записи чисел.

Oтголоски единичной CC встречаются и сегодня. Так, чтобы узнать, на каком курсе учится курсант училищ, в которых введена форма, нужно сосчитать, сколько полосок нашито на его рукаве. Воинские звания обозначаются знаками различия (полосками или звёздочками) на погонах. Сами того не осознавая, единичной системой счисления пользуются малыши, показывая на пальцах свой возраст, а счётные палочки, как известно, по сей день используются для обучения учеников первого класса счету.



Древнеегипетская СС

Считается, что древнеегипетская десятичная непозиционная система возникла во второй половине третьего тысячелетия до н.э. Бумаге предшествовала глиняная дощечка, и именно поэтому древнеегипетские цифры имеют такое начертание. Египтяне придумали свою числовую систему, в которой для обозначения ключевых чисел 1, 10, 100, 1000, 104, 105, 106 использовались специальные значки - иероглифы (цифры). Числа в египетской системе счисления записывались как комбинации этих "цифр", в которых каждый иероглиф повторялась не более девяти раз.

В основе как палочной, так и древнеегипетской систем счисления лежал простой принцип сложения, согласно которому значение числа равно сумме значений цифр, участвующих в его записи. Все числа составлялись из ключевых при помощи операции сложения. Система счисления Древнего Египта является десятичной и непозиционной.

Цифры для целых чисел Цифры для дробей
единица десять сотня тысяча десять тысяч сто тысяч миллион половина одна треть две трети три четверти одна шестая одна двенадцатая

Например, чтобы изобразить число 3252, рисовали три цветка лотоса (три тысячи), два свернутых пальмовых листа (две сотни), пять дуг (пять десятков) и два шеста (две единицы). Величина числа не зависела от того, в каком порядке располагались составляющие его знаки: их можно было записывать сверху вниз, справа налево или вперемежку.



Римская система счисления (далее - РСС)

Считается, что она применялась более двух с половиной тысяч лет назад в Древнем Риме. Римскими цифрами пользовались очень долго. Еще 200 лет назад в деловых бумагах числа должны были обозначаться римскими цифрами (считалось, что обычные арабские цифры легко подделать). РСС сегодня используется, в основном, для наименования знаменательных дат, томов, разделов и глав в книгах.

В основе римской нумерации лежали знаки I (один палец) для числа 1, V (раскрытая ладонь) для числа 5, X (две сложенные ладони) для 10, а для обозначения чисел 100, 500 и 1000 стали применять первые буквы соответствующих латинских слов (Centum - сто, Demimille - половина тысячи, Mille - тысяча).

Алфавит РСС
I V X L C D M
1 5 10 50 100 500 1000

Правила записи чисел в РСС: 1. В РСС цифры записываются слева направо в порядке убывания. В этом случае их значения складываются. 2. Если слева записана мèньшая цифра, а справа - бòльшая, то их значения вычитаются. 3. Считалось желательным не записывать подряд более трёх цифр одного достоинства. Правило 2 вытекает из правила 3.

Примеры записи римских чисел: CCXXXII = 232; CMXCIV = 994; MMMCMLXXXIX = 3989

Алфавитные системы счисления (далее - АСС)

Более совершенными НСС были алфавитные системы. К числу таких относились ионийская (греческая), славянская, финикийская и другие. В них числа от 1 до 9, целые количества десятков (от 10 до 90) и целые количества сотен (от 100 до 900) обозначались буквами алфавита.

В ионийской АСС Древней Греции числа 1, 2, ..., 9 обозначались первыми девятью буквами греческого алфавита, например α= 1, β = 2, γ= 3 и т.д. Для обозначения чисел 10, 20, ..., 90 применялись следующие 9 букв ( ι = 10, κ = 20, λ= 30, μ = 40 и т.д.), а для обозначения чисел 100, 200, ..., 900 - последние 9 букв ( ρ = 100, ς = 200, τ = 300 и т.д.). Например, число 141 обозначалось ρμα.

Византийская система счисления

На Руси вплоть до XVIII века (до реформ Петра I) использовалась непозиционная византийская АСС. Буквы кириллицы имели цифровое значение (шифр, цифр), если ограничивались на письме с обеих сторон точками •, а над ними ставился специальный знак - "титло" (родственно слову "титул", созвучно со словом "число"). Знак титла есть слегка модифицированное латинское N, сплюснутое по высоте и растянутое по длине, сокращение от 'numer', т.е. "число".

Византийская СС позволяла доходить до значительных величин (вероятно, византийцы были богаче римлян, так как количество используемых чисел говорит о пересчитываемых богатствах). Запись чисел в алфавитной системе можно рассматривать как зачатки позиционной системы счисления - в АСС для обозначения единиц разных разрядов тысяч и миллионов применялись одни и те же символы, к которым лишь добавлялись специальные знаки для определения значения разряда. АСС были мало пригодны для операций с большими числами. В ходе развития человеческого общества эти системы уступили место позиционным системам.

Алфавит славянских цифр

Тысячи, десятки тысяч, сотни тысяч и т.д. имели специальные значки, окружавшие цифры единиц.

Десятки тысяч именовались "тьмы" и выражались знаками единиц, заключёнными в кружок.

Сотни тысяч (легионы) выражались знаками единиц, заключёнными в круг из точек.

Тысячи тысяч (миллионы) именовались "леодоры" (леодры) и выражались теми же знаками единиц, заключёнными в кружок из лучей или запятых

Десятки миллионов именовались "вòроны" и обозначались кружком из крестиков (плюсиков).

Далее следовало бесконечное число "колòда". Считалось, что "боле сего несть человеческому уму разумевати".


Русские дроби
Правильные дроби
Неправильные дроби (смешанные числа)
1/2 1/16 1/6
пол пол-полчети полтрети полвтора (современное "полтора") полпяты
1/4 1/32 1/12
четь пол-пол-полчети пол-полтрети полтретья полшесты
1/8 1/3 1/24
полчети треть пол-пол-полтрети полчетверти полседьмы
Неудобства непозиционных систем счисления:
  1. Пригодны для сложения и вычитания, тяжелы для умножения и деления.
  2. Ясно, что сколько ни вводи новых знаков для больших чисел, всегда можно придумать число, которое трудно изобразить уже введёнными в систему счисления знаками. Поскольку чисел бесконечное множество, потребуется бесконечное множество вновь вводимых символов, а это бессмысленно и усложняет таблицы арифметики. Учебник арифметики по такой СС никогда не удастся завершить. Поэтому люди перешли к позиционным системам счисления (далее - ПСС).
Индийская мультипликативная СС

СС, основанные на позиционном принципе, возникли независимо одна от другой в древнем Междуречье (Вавилон), у племени майя и, наконец, в Индии. Всё это говорит о том, что возникновение позиционного принципа не было случайностью. Каковы же были предпосылки для его создания? Что привело людей к этому замечательному открытию?

Чтобы ответить на эти вопросы, обратимся к истории. В древнем Китае, Индии и в некоторых других странах существовали системы записи, построенные на мультипликативном принципе.

Он был следующей ступенью от НСС к ПСС. Купцы, офени, менялы часто опускали названия разрядов при письме подобно тому, как мы говорим "три двадцать", а не "три рубля двадцать копеек", "семь сорок", а не "семь часов сорок минут". При записи чисел по такой системе очень часто требовался символ для обозначения отсутствующего разряда.

Пусть, например, десятки обозначаются символом X, а сотни - Y. Тогда запись числа 323 схематично будет выглядеть так: ЗY2Х3. В таких системах для записи одинакового числа единиц, десятков, сотен или тысяч применяются одни и те же символы, но после каждого символа пишется название соответствующего разряда. С использованием введённых обозначений число 100 можно записать в виде 1Y.

Вавилонская СС.

В Древнем Вавилоне применялась шестидесятеричная ПСС. Числа в этой системе счисления составлялись из знаков двух видов: прямой клин служил для обозначения единиц и лежачий клин - для обозначения десятков. Клинья-то и служили "цифрами" в этой системе. Число 60 снова обозначалось тем же знаком (прямой клин), что и 1. Этим же знаком обозначались числа 3600 = 60², 216 000 = 60³ и все другие степени 60. Поэтому вавилонская система счисления получила название шестидесятеричной. Остатки её мы находим в сохранившемся до наших дней делении часа или градуса на 60 минут, а минуты - на 60 секунд.

Для определения значения числа надо было изображение числа разбить на разряды справа налево. Чередование групп одинаковых знаков ("цифр") соответствовало чередованию разрядов. Значение числа определяли по значениям составляющие его "цифр", но с учётом того, что "цифры" в каждом последующем разряде значили в 60 раз больше тех же "цифр" в предыдущем разряде. Таблицу умножения вавилоняне никогда не запоминали, так как это было практически невозможно. При вычислениях они пользовались готовыми таблицами умножения.

 

Позиционные СС (ПСС).

В ПСС величина, обозначаемая цифрой в записи числа, зависит от её позиции (от разряда, в котором стоит знак числа).

Количество используемых цифр называется основанием ПСС (мощностью алфавита). Также основанием ПСС называется отношение двух соседних разрядов в записи числа. СС, применяемая в современной математике, называется позиционной десятичной (ПДСС).

ПДСС называется арабской, но придумана в Индии не позднее V века н.э. В Европе об этой системе узнали из арабских трактатов в XII в н.э., широкое распространение ПДСС получила в XVI в., когда в потребовалось обсчитывать большие объёмы данных.

Алфавит десятичных цифр известен читателю со начальной школы.

Счёт с помощью ПДСС оказалось очень легко механизировать. Джон Непер (Нейпир), шотландский математик, в 1617 г. изобрёл математический набор, призванный облегчить арифметические вычисления. Набор состоял из брусков с нанесенными на них цифрами от 0 до 9 и кратными им числами. Для умножения какого-либо числа бруски располагали рядом так, чтобы цифры на торцах составляли это число. Ответ можно было увидеть на боковых сторонах брусков. Помимо умножения, палочки Непера позволяли выполнять деление и извлечение квадратного корня. Ещё сейчас можно видеть в спидометре каждого автомобиля механический счётчик пройденного пути.

Первым счётное механическое устройство изобрёл Вильгельм Шиккард (Wilhelm Schickard) (1592, Херренберг, близ Штутгарта - 1635, Тюбинген), немецкий математик и астроном, профессор Тюбингенского университета. Шиккард изобрёл и построил модель шестиразрядного механического вычислительного устройства, которое могло складывать и вычитать числа. Машина Шиккарда содержала суммирующее и множительное устройства, а также механизм для записи промежуточных результатов. Первый блок - шестиразрядная суммирующая машина - представлял собой соединение зубчатых передач. На каждой оси имелись шестерня с десятью зубцами и вспомогательное однозубое колесо - палец. Палец служил для того, чтобы передавать единицу в следующий разряд (поворачивать шестерёнку на десятую часть полного оборота, после того как шестерёнка предыдущего разряда сделает такой оборот). При вычитании шестерёнки следовало вращать в обратную сторону. Контроль хода вычислений можно было вести при помощи специальных окошек, где появлялись цифры. Для перемножения использовалось устройство, чью главную часть составляли шесть осей с "навернутыми" на них таблицами умножения.


Большинство людей сегодня так привыкли пользоваться ПДСС, что с трудом воспринимают идеи записи чисел в ПСС с иным основанием. Обычную запись десятичного позиционного числа 73 025 932 ("сжатую") можно разложить (развернуть) по разрядам так: 7×107+3×106+2×104+5×103+9×102+3×101+2×100

Очень широкое распространение имела в древности, особенно на Ближнем Востоке, двенадцатеричная система (далее - ДвПСС). Её происхождение также связано со счётом на пальцах, только за единицу принимали не пальцы, а фаланги (отдельные суставы). Большой палец в этом случае служил счётным инструментом. Остатки ДвПСС сохранились до наших дней и в устной речи, и в обычаях. Единица первого разряда в ДвПСС называлась дюжина (от франц. douzaine), 12 штук (в счёте однородных предметов). Чёртовой дюжиной до сих пор шутливо называют число 13.

Единица второго разряда ДвПСС - гросс (нем. Groβ большой), мера счёта (обычно мелких галантерейных и канцелярских предметов), равная дюжине дюжин, 14410. Сохранился обычай считать многие предметы не десятками, а дюжинами или полудюжинами (столовые приборы в сервизах, мебель, бутылки шампанского в ящике). Сейчас название гросс уже редко встречается, однако 80-90 лет назад оно встречалось достаточно часто, особенно в торговле. В.В. Маяковский, высмеивая в 1928 году запасливых мещан, скупающих подряд всё нужное и ненужное, писал в стихотворении "Плюшкин":

"...укупил
двенадцать гроссов
дирижёрских палочек".

Единица третьего разряда ДвПСС - дюжина гроссов - тоже имела специальное название масса (нем. Masse). Так называлось 1728 предметов.

У ряда африканских племён и в древнем Китае была употребительна пятеричная система счисления. В Центральной Америке (у ацтеков и майя) и среди населявших Западную Европу кельтов в ходу была двадцатеричная система счисления.

Общие правила записи чисел в ПСС
  1. Для записи чисел в позиционной системе счисления с основанием N требуется ровно N цифр (алфавит состоит из N цифр [букв]).
  2. Основание системы счисления всегда записывается как 10 (читается "один ноль").
  3. Для того, чтобы различать, в какой системе счисления записано число, принято основание системы счисления указывать нижним индексом мелким шрифтом справа внизу числа. При этом само основание системы счисления во всех случаях пишется в ПДСС.
Основание системы счисления Имя системы счисления Алфавит системы счисления
N=2 двоичная 0 1
N=3 троичная 0 1 2
N=4 четверичная 0 1 2 3
N=5 пятеричная 0 1 2 3 4
N=6 шестеричная 0 1 2 3 4 5
N=7 семеричная 0 1 2 3 4 5 6
N=8 восьмеричная 0 1 2 3 4 5 6 7
N=9 девятеричная 0 1 2 3 4 5 6 7 8
N=10 десятичная 0 1 2 3 4 5 6 7 8 9
N=11 одиннадцатеричная 0 1 2 3 4 5 6 7 8 9 A
N=12 двенадцатеричная 0 1 2 3 4 5 6 7 8 9 A B
N=13 тринадцатеричная 0 1 2 3 4 5 6 7 8 9 A B C
N=14 четырнадцатеричная 0 1 2 3 4 5 6 7 8 9 A B C D
N=15 пятнадцатеричная 0 1 2 3 4 5 6 7 8 9 A B C D E
N=16 шестнадцатеричная 0 1 2 3 4 5 6 7 8 9 A B C D E F
и т. д. и т. д. и т. д.

В системе счисления с основанием q (q-ичная система счисления) единицами разрядов служат последовательные степени числа q, иначе говоря, q единиц какого-либо разряда образуют единицу следующего разряда. Для записи чисел в q-ичной системе счисления требуется q различных цифр (0,1,...,q-1).

В позиционной системе счисления любое вещественное число в развернутой форме может быть представлено в следующем виде:

или

здесь А - само число,
q - основание системы счисления,
ai -цифры, принадлежащие алфавиту данной системы счисления,
n - число целых разрядов числа,
m - число дробных разрядов числа.

Свернутая форма записи числа - запись в виде

Именно такой формой записи чисел мы и пользуемся в повседневной жизни. Иначе свернутую форму записи называют естественной или цифровой.

Механические недесятичные счётчики.

Люди чаще всего создавали механические счётные устройства (счётчики пути или арифмометры), считающие в привычной нам ПДСС. Но число зубцов в шестерёнках счётного колеса можно поменять. На счётном колесе десятичного арифмометра шестерёнки с 10-ю зубцами, угол поворота колеса составляет 36°. Предположим, что на приборной панели автомобиля расположены механические счётчики пройденного пути, считающие в недесятичных системах счисления - от двоичной до шестнадцатеричной. На двоичном счётном колесе всего две цифры (0 и 1), за каждую пройденную единицу пути колесо поворачивается на ½ оборота (180°). На троичном счётном колесе - три цифры (0 и 1 и 2), за каждую пройденную единицу пути колесо поворачивается на 1/3 оборота (120°) и т. д. Сначала все счётчики обнулены (строка таблицы ниже названий счётчиков), в этом состоянии счётчики задерживаются около 8 секунд. После этого смоделированы показания счётчиков при продвижении автомобиля с нулевой отметки по 21-ю на двадцать две единицы пути.

Совершенно ясно, что все счётчики показывают одну и ту же длину пути, одно и то же расстояние, которое проехал автомобиль, но величина эта записана в разных системах счисления.

Системы счисления, используемые в компьютере.

Внутри компьютера любая информация представлена в цифровой двоичной форме. Для отладки программ программисты используют восьмеричные числа. Часто в записях, хранящихся на компьютере, кодировка символов отображается в экономном шестнадцатеричном формате.

Любое вещественное число можно перевести из десятичной записи в любую другую недесятичную. Целую и дробную части числа переводят по разным правилам.

Правила перевода десятичной записи целой части числа в недесятичную.

Для перевода целой части десятичного числа в недесятичную запись следует разделить число на основание новой системы счисления с остатком, а остатки выписать в обратной последовательности. Деление следует прекращать, когда остаток будет меньше основания новой системы счисления. Если остаток больше 9, его следует перевести в цифровую запись так: 10=А, 11=В, 12=С, 13=D, 14=Е и т.д. до конца латинского алфавита.

Пример 1. Переведём число 2210 из десятичной в двоичную, пятеричную, восьмеричную и шестнадцатеричную СС.

Целая и дробная части вещественных чисел переводятся по отдельности.

Правила перевода недесятичной записи целой части числа в десятичную.

Для такого перевода свёрнутую форму записи числа надо превратить в развёрнутую: выписать число в недесятичной записи, под разрядами подписать их номера, начиная с нулевого влево. Эти разряды будут степенями основания недесятичной системы счисления. Основание системы счисления надо подписать под каждым разрядом недесятичного числа, затем выписать недесятичное число в развёрнутой форме, выполнить арифметические действия в порядке приоритета и получить в результате десятичную запись числа.

Пример 2. Переведём в десятичную запись число 1358, 4235, 2314, 2123, 10112.

Число 1358 "развернётся" в сумму 1×8²+3×8¹+5×8o=6410+2410+510=9310

Число 4235 "развернётся" в сумму 4×5²+2×5¹+3×5o=10010+1010+310=11310

Число 2314 "развернётся" в сумму 2×4²+3×4¹+1×4o=3210+1210+110=4510

Число 2123 "развернётся" в сумму 2×3²+1×3¹+2×3o=1810+310+210=2310

Число 10112 "развернётся" в сумму 1×2³+0×2²+1×2¹+1×2o=810+0+410+110=910

Правила перевода десятичной записи дробной части числа в недесятичную.

Для перевода дробной части десятичного числа надо последовательно умножать её на основание новой системы счисления. Единицы нулевого разряда в полученном произведении надо выписывать в прямом порядке. Если на одном из этапов в дробной части произведения останутся только нули, умножение следует прекратить. Если такого не случается, умножение может продолжаться бесконечно. В этом случае следует договориться, с какой точностью требуется представить недесятичную дробь. Допустим, требуется получить недесятичную дробь с точностью до шестого знака после запятой. Тогда надо 7 раз умножить дробную часть и округлить полученный цифровой ряд до 6 знака после запятой.

Пример 3. Переведём дробь 0,1562510 последовательно в двоичную, четверичную и восьмеричную записи.

Перевод в двоичную запись.

Исходная дробь 0,1562510 записывается вверху слева и умножается на 2, целая часть произведения записывается последовательно в прямом порядке. Результат тоже должен быть дробным числом. На третьем шаге в целой части произведения получилась единица. Она переносится в результирующую запись, а шагом ниже в целой части вместо 1 пишется 0 и процедура перевода в двоичную запись продолжается. Результат 0,1562510=0,001012


Перевод в четверичную запись.

Перевод в четверичную запись. Исходная дробь последовательно умножается на 4, целая часть произведения записывается в прямом порядке. На втором шаге в целой части произведения получилось 2. Переносим её в результирующую запись, в целой части вместо 2 пишется 0 и т.д. Результат 0,1562510=0,0224


Перевод в восьмеричную запись.

Исходная дробь последовательно умножается на 8, целая часть произведения записывается в прямом порядке. На первом шаге в целой части произведения получилось 1. Переносим её в результирующую запись, в целой части вместо 1 пишется 0 и т.д. Результат 0,1562510=0,128


Итак, 0,1562510=0,128=0,0224=0,001012

В результате получились конечные недесятичные дробные числа. Такой результат - следствие того, что рассматривался специально подобранный (учебный) пример. Но если бы десятичная дробь была иной: 0,1562710 или 0,1562110 - то её невозможно было бы представить конечной двоичной, четверичной или восьмеричной дробями.

То же может случиться, если попытаться перевести дробь 0,1562510 в позиционную запись с иным основанием.

Пример 4. Попробуем перевести в троичную запись десятичную дробь 0,1562510 с точностью до пятого знака после запятой.

Перевод в троичную запись. Исходная дробь записывается вверху слева и умножается на 3, целая часть произведения записывается последовательно в прямом порядке. Результат тоже должен быть дробным числом. На втором, третьем и пятом шагах в целой части произведения получается 1 или 2. Цифры переносятся в результирующую запись, а шагом ниже в целой части вместо 1 или 2 пишется 0 и процедуру продолжается. Результат - бесконечная непериодическая дробь 0,1562510=0,011012…3. Для получения дроби с требуемой точностью к пятому разряду прибавить единицу, шестой разряд обнулить. Тогда 0,1562510≈0,011023


Перевод недесятичных вещественных чисел в десятичные. Немного материала для осмысления.
1 0 1 0 1 1, 0 0 1 1
32 16 8 4 2 1 ½ ¼ 1/8 1/16
25 24 23 22 21 20 2-1 2-2 2-3 2-4
тридцатидвушки шестнадцатки восьмёрки четвёрки двойки единицы половины четверти осмьушки шестнадцатые

В двоичной системе записано число 101011,00112

1 2 0 2 2, 1 0 2 1
81 27 9 3 1 1/3 1/9 1/27 1/81
34 33 32 31 30 3-1 3-2 3-3 3-4
восьмидесятиоднушки двадцатисемёрки девятки тройки единицы трети девятые двадцатьседьмые восемьдесятпервые
В троичной системе записано число 12022,10213


4 2 0 1 4, 3 2 1
625 125 25 5 1 1/5 1/25 1/125
54 53 52 51 50 5-1 5-2 5-3
шестисотдвадцатипятки стадвадцатипятки двадцатипятки пятёрки единицы пятые двадцатьпятые стодвадцатипятые
В пятеричной системе записано число 42014,3215


9 8 7 6 5 4 3, 2 1 0 7
1 000 000 100 000 10 000 1000 100 10 1 1/10 1/100 1/1000 1/10000
106 105 104 103 102 101 100 10-1 10-2 10-3 10-4
миллионы сотни тысяч десятки тысяч тысячи сотни десятки единицы десятые сотые тысячные десятитысячные
В десятичной системе записано число 9876543,210710



9 0 7 А B 6 1, 4 3 2
2985984 248832 20736 1728 144 12 1 1/12 1/144 1/1728
126 125 124 123 122 121 120 12-1 12-2 12-3
массы масс гроссы масс дюжины масс массы гроссы дюжины единицы дюжинные гроссовые массовые
В двенадцатеричной системе записано число 907АВ61,43212

Правила перевода недесятичной записи дробной части числа в десятичную.

Для такого перевода свёрнутую форму записи дроби надо превратить в развёрнутую: выписать дробь в недесятичной записи, под разрядами подписать их номера, начиная с нулевого вправо. Эти разряды будут степенями основания недесятичной системы счисления. Основание системы счисления надо подписать под каждым разрядом недесятичного числа, затем выписать недесятичное число в развёрнутой форме, выполнить арифметические действия в порядке приоритета и получить в результате десятичную запись числа.

Пример 5. Переведём четверичную дробь 0,3124 в десятичную запись:

Итак, 0,3124=0,8437510

Пример 6. Переведём троичную дробь 0,2123 в десятичную запись:

Значит, 0,2123=0,(851)10

Пример 7. Переведём двоичную дробь 0,11112 в десятичную запись:

Следовательно, 0,11112=0,937510

Недесятичная арифметика.

Она возможна, если написать таблицы сложения и умножения для некоторых требуемых недесятичных ПСС.











Таким же способом можно пользоваться арифметическими таблицами в ПСС с любым другим основанием.







Прямой перевод чисел из двоичной в восьмеричную или шестнадцатеричную ПСС.

Поскольку 2³=810, можно переводить двоичную запись числа в восьмеричную напрямую. В таблице ниже три разряда двоичной записи соответствуют одному разряду восьмеричной записи.

Двоичная ПСС 0002 0012 0102 0112 1002 1012 1102 1112
Восьмеричная ПСС 08 18 28 38 48 58 68 78

Для перевода в восьмеричную запись двоичное число разбивается на триады (группы по три цифры) справа налево от нулевого разряда. Если число разрядов не кратно трём, слева старшие разряды следует дописать нулями. Затем каждая триада заменяется её восьмеричным эквивалентом по таблице.

Пример 8. 10111111012=001 011 111 101=1 3 7 5 8 =76510

Поскольку 24=1610, можно переводить двоичную запись числа в шестнадцатеричную напрямую. В таблице ниже четыре разряда двоичной записи соответствуют одному разряду шестнадцатеричной записи.

Двоичная ПСС 00002 00012 00102 00112 01002 01012 01102 01112 10002 10012 10102 10112 11002 11012 11102 11112
Шестнадцатеричная ПСС 0h 1h 2h 3h 4h 5h 6h 7h 8h 9h Ah Bh Ch Dh Eh Fh

Для перевода в шестнадцатеричную запись двоичное число разбивается на тетрады (группы по четыре цифры) справа налево от нулевого разряда. Если число разрядов не кратно четырём, слева старшие разряды следует дописать нулями. Затем каждая тетрада заменяется её шестнадцатеричным эквивалентом по таблице.

Пример 9. 10111111012= 0010 1111 1101=2 F D 16=76510

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

Представление чисел в памяти ЭВМ.

Внутренняя память ЭВМ (RAM, random access memory - память с произвольным доступом, ОЗУ, оперативное запоминающее устройство) можно представить как большую прямоугольную таблицу. Каждую строку этой таблицы можно назвать машинным словом. Оно характеризуется разрядностью - числом бит, которые за один такт может обработать процессор компьютера. Большинство современных персональных компьютеров обрабатывают 32-битные машинные слова. Поскольку 1 байт равен 8 бит, персональный компьютер может обрабатывать 4- или 8-байтовые машинные слова.

Числа, вводимые с клавиатуры, поступают в ОЗУ. Все они представляют собой цепочки нолей и единиц, но сами числа представляются (кодируются) в компьютере разными способами.

Двоично-десятичное представление

В некоторых случаях при представлении чисел в памяти ЭВМ используется смешанная двоично-десятичная запись числа, где для хранения каждого десятичного знака нужен полубайт (4 бита). Десятичные цифры от 0 до 9 представляются соответствующими двоичными числами от 0000 до 1001. Например, упакованный десятичный формат, предназначенный для хранения целых чисел с 18-ю значащими цифрами и занимающий в памяти 10 байт (старший из которых знаковый) использует именно этот вариант.


Целые числа без знака.

Целые числа могут представляться в компьютере без знака или со знаком. Целые числа без знака обычно занимают в памяти компьютера 1 байт или 2 и принимают в однобайтовом формате значения от 000000002 до 111111112 (от 0 до +255). В двубайтовом формате числа выглядят как записи от 00000000000000002 до 11111111111111112 (от 0 до +65535).

Целые числа со знаком.

Знак положительного целого числа кодируется нолём в старшем разряде числа в памяти ЭВМ, отрицательного - единицей. Однобайтный формат представляет отрицательные (в седьмом бите единица) и положительные (в седьмом бите ноль) числа, лежащие в диапазоне от -27 до +27-1 (от -128 до +127).

Пример 10.


В старшем, 15-м бите двубайтового формата 1 ставится для отрицательных чисел, 0 - для положительных чисел. Диапазон двубайтового представления от -32768 до +32767 (от -215 до +215-1).

Пример 11.


Числа типа "длинное целое" представлены в четырёхбайтовом формате и лежат в диапазоне от -231 до +231-1 (от -2 147 483 648 до +2 147 483 647). Знак числа лежит в старшем, 63-м бите.



Прямой, обратный (инверсный) и дополнительный коды чисел

В памяти ЭВМ двоичные числа представлены в одном из трёх способов кодирования: прямом, обратном либо дополнительном кодах. Положительные числа в прямом, обратном и дополнительном кодах выглядят одинаково. Отрицательные числа в трёх указанных кодировках выглядят по-разному.

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

Дополнительный код целого положительного числа совпадает с его прямым кодом. Число переводится в двоичную запись, а слева добавляется столько нулей, сколько остаётся незаполненных оставшихся битов объявленного формата числа (однобайтное, двубайтное или четырёхбайтное).

Пример 12. +3710=1001012=001001012=25h=00000000 001001012=0025h=00000000 00000000 00000000 001001012=00000025h

Дополнительный код целого отрицательного числа может быть получен по следующему алгоритму:

  1. записать прямой код модуля числа;
  2. инвертировать его, заменив 1 на 0, а 0 на 1;
  3. прибавить к инвертированному коду 1.

Пример 13. Дополнительный код числа -3710 в двубайтном представлении выглядит так:

  1. 00000000001001012
  2. 11111111110110102
  3. 11111111110110112, или в шестнадцатеричном формате FFDBh

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

  1. вычесть из кода числа 1
  2. инвертировать код
  3. перевести в десятичную систему счисления, записав со знаком "минус".

Запишем числа, соответствующие дополнительным кодам:

Пример 14. 00000000000101112. В старшем разряде записан нуль, результат будет положительным. Это код числа +2310.

Пример 15. 11111111110000002. Записан код отрицательного числа. Исполняем алгоритм:

  1. 11111111110000002-12=11111111101111112
  2. 00000000010000002;
  3. 10000002=6410

Ответ: -6410

Представление в памяти компьютера действительных (вещественных) чисел.

Вещественные (действительные) числа - конечные и бесконечные десятичные дроби - хранятся и обрабатываются в памяти компьютера в формате с "плавающей" запятой ("плавающей" точкой). Электронно-вычислительная машина представляет числа либо в естественной форме (целые числа), либо в нормальной (вещественные числа). Предположим, что существует ЭВМ "Иродиада", длина машинного слова которой равна 1 байт. Числа в её памяти представляются либо в естественной форме, либо в нормальной.

Какие целые числа могут быть записаны в машинном слове "Иродиады"?

Уже известный нам диапазон для целых чисел [-128 .. +127] смотрите в Примере 10 этого текста.

Рассмотрим, какие вещественные числа могут быть записаны в машинном слове "Иродиады", считая, что порядок числа лежит между 010 и 110.

Слева записано наименьшее отрицательное вещественное число для ЭВМ с однобайтным

машинным словом. В этом случае число равно -0,1112×210-1112= -(1-2-³)×2-7≈-2-7


Справа записано наибольшее положительное вещественное число для ЭВМ с однобайтным

машинным словом. В этом случае число равно +0,1112×210+1112= +(1-2-³)×2+7=2+7-2+4=12810-1610=11210


При таком способе кодирования вещественные числа лежат в диапазоне от -1/128 до +112.

В ЭВМ с машинным словом длиной более одного байта диапазон представляемых чисел выглядит по-другому.

Вещественные двоичные числа представляют десятичные приближённо. Для того, чтобы сохранить максимальную точность, вычислительные машины почти всегда хранят мантиссу в нормализованном виде, что означает, что мантисса есть число, лежащее между 110 и 210 (1≤М≤2). Способ хранения мантиссы с плавающей точкой (запятой) подразумевает, что двоичная запятая находится на фиксированном месте. Место, отводимое для числа с плавающей точкой (запятой), делится на два поля. Одно поле содержит знак и значение мантиссы, а другое содержит знак и значение порядка.

Покажем преобразование действительного числа для представления его в памяти ЭВМ на примере величины типа "число с удвоенной точностью представления в памяти". Величина этого типа занимает в памяти 8 байт.

Мантисса занимает младшие биты с 0 до 51. Положение двоичной запятой - между 51 и 52 битами. Перед запятой должен стоять бит целой части мантиссы, но поскольку она всегда равна 1, здесь данный бит не требуется и соответствующий разряд отсутствует в памяти (но он подразумевается). Значение порядка хранится здесь не как целое число, представленное в дополнительном коде. Для упрощения вычислений и сравнения действительных чисел значение порядка в ЭВМ хранится в виде смещённого числа, т.е. к настоящему значению порядка перед записью его в память прибавляется смещение. Смещение выбирается так, чтобы минимальному значению порядка соответствовал нуль. Для типа числа "удвоенная точность" порядок занимает 11 бит и лежит в диапазоне от 2-1023 до 2+1023, поэтому смещение равно 102310= 1111111112. Старший бит с номером 63 указывает на знак числа.

Алгоритм получения представления действительного числа в памяти ЭВМ:

  1. перевести модуль данного числа в двоичную систему счисления;
  2. нормализовать двоичное число, т.е записать в виде M×2p где М - мантисса (её целая часть равна 12) и p - порядок, записанный в десятичной cистеме счисления;
  3. прибавить к порядку смещение и перевести смещённый порядок в двоичную систему счисления;
  4. учитывая знак заданного числа (0 - положительно; 1 - отрицательное), выписать его представление в памяти ЭВМ.

Пример 16. Для десятичного числа -312,312510 получить его код как "числа с удвоенной точностью представления".

  1. Двоичная запись модуля этого числа выглядит как 100111000,01012
  2. Нормализация: 100111000,0101=1,001110000101×28
  3. Получить смещённый порядок: 810+102310=103110=100000001112
  4. Окончательно:

Компактная шестнадцатеричная (hexadecimal) запись полученного кода выглядит как С073850000000000h.

Пример 17. Обратный переход от кода действительного числа к десятичной записи числа: пусть дан код 3FEC60000000000h, объявлен тип хранимого кода - "число с удвоенной точностью представления". Его двоичное представление в памяти:

Это код положительного числа, т.к. в 63-м разряде 0. Порядок этого числа:
1)011111111102=102210. 102210-102310=-110
2) Число имеет вид 1,11000112×210-¹, или 0,111000112
3) Перевод в десятичную систему: 0,111000112 = 0,8867187510.




Список литературы:
  1. http://inf.e-alekseev.ru Алексеев Е.Г., Богатырев С.Д. Информатика. Мультимедийный электронный учебник.
  2. Введение в информатику. Лабораторные работы/ Авт.-сост. А. П. Шестаков. - Пермь, 1999.- Часть I.
  3. Жерарден Л. Бионика. Перев. с франц. М.Н. Ковалевой. Ред. и предисл. проф. В.И.Гусельникова. - М.: "Мир", 1971. - СС.27-42.
  4. Жигарев А.Н. и др. Основы компьютерной грамоты/А.Н.Жигарев, Н.В.Макарова, М.А.Путинцева; Под общ. ред. Н.В.Макаровой. - Л.: Машиностроение. Ленингр. отд-ние, 1987. - СС.42-48.
  5. Колмыкова Е.А. Информатика: учеб. пособие для студ. сред. проф. образования /Е.А. Колмыкова, И.А. Кумскова.- 2.е изд., стер.- М.: Издательский центр "Академия", 2006. - СС.30-43.
  6. Ляхович В.Ф. Основы информатики: учебник / В.Ф.Ляхович, С.О.Крамаров, И.П.Шамараков. Изд. 7-е, дополн. и перераб. - Ростов-н/Д: изд-во "Феникс", 2003.- СС.13-17.
  7. Симонов Р.А. Математическая мысль Древней Руси. - М.: "Наука", 1977.
  8. Моделирующая компьютерная среда для образования "Информатика". Электронное учебное пособие (CD). - Пермь, Лаборатория компьютерного моделирования Пермского регионального центра информатизации, 2000. - Раздел 1, темы 1.5. "Численная информация", части "Теория", "Задачи".
  9. Семененко В.А., Балтрушевич А.В. Электронно-вычислительные машины: Учеб. пособие для сред. ПТУ. - М.: Высш. шк., 1985. - СС.25-46.
  10. Поснова М.Ф. и др. ЭВМ для всех: Для чего нужны и как работают персон. ЭВМ/М.Ф.Поснова, Л.В.Стрикелева, Н.Н.Поснов - Мн.: Университетское, 1990. - СС.7-35.
  11. Угринович Н.Д. Информатика и информационные технологии: Учебное пособие для общеобразовательных учреждений.- М.: Бином: 2001. Приложение к учебнику (CD-ROM).//Информатика и информационные технологии /Практикум/Глава 2.Кодирование информации. Системы счисления/2.2. Системы счисления| 2.3. Перевод чисел| 2.4. Арифметика

Перевод в Web-формат © Σταυρος Τεκτονος

Партнёры



©StavrosTektonos