Как компьютер сравнивает числа

Обновлено: 07.07.2024

Сначала ваши целые числа преобразуются в двоичные числа. Например, целое число 2 преобразуется в 0010.

В аппаратуре компаратора используются некоторые ворота (AND, OR, NAND, NOR, XOR и т. Д.). Эти ворота берут двоичные входы и дают результат в двоичном формате. Результат можно увидеть из таблицы истинности.

Here 0 & 1 are electronic voltages for the gate.
1 - Represents some threshold voltage which indicates some positive voltage.
0 - Represents the voltage below than the threshold.

E.g. suppose a comparator works on 5 volt (it is consideration for explanation) then:
Voltage more than 3 volt can be considered as binary-1 .
Voltage below than 3 volt be considered as binary-0

If a gate gets one input as 3.5 volt and another input as 2 volt then it considers as, it takes one input as binary 1 & another input as binary 0.

These sequences of 1's & 0's are provided very fastly through the switching circuit.

Операция двухбитового цифрового компаратора может быть выражена как таблица истинности:

Examples: Consider two 4-bit binary numbers A and B such that


Here each subscript represents one of the digits in the numbers.

Equality

The binary numbers A and B will be equal if all the pairs of significant digits of both numbers are equal, i.e.,
. . .

Since the numbers are binary, the digits are either 0 or 1 and the boolean function for equality of any two digits and > can be expressed as

is 1 only if and are equal.

For the equality of A and B, all variables (for i=0,1,2,3) must be 1. So the quality condition of A and B can be implemented using the AND operation as

The binary variable (A=B) is 1 only if all pairs of digits of the two numbers are equal.

Inequality

enter image description here

In order to manually determine the greater of two binary numbers, we inspect the relative magnitudes of pairs of significant digits, starting from the most significant bit, gradually proceeding towards lower significant bits until an inequality is found. When an inequality is found, if the corresponding bit of A is 1 and that of B is 0 then we conclude that A>B. This sequential comparison can be expressed logically as:


Как реализуется сравнение чисел в компьютере?

Собственно не понятно как реализуется сравнение двух чисел на компьютере.
Т.е. как узнаётся отношение между числами >, < или ==(равенство). Как и все остальное - с помощью небольшого набора команд процессора RISK или CISC архитектуры. А конкретно в каждом случае - как компилятор переведет на этот язык код программера и оптимизирует его в соответствии со своими предустановками. Как и все остальное - с помощью небольшого набора команд процессора RISK или CISC архитектуры. А конкретно в каждом случае - как компилятор переведет на этот язык код программера и оптимизирует его в соответствии со своими предустановками.
А не знаете где можно прочитать подробнее про сам механизм, алгоритм реализации сравнения?

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

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

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

Последний раз редактировалось _Ivana 31.10.2012, 22:19, всего редактировалось 1 раз.

То есть как я понимаю всё сходится к проверке значений определённых ячеек в регистре. А в компьютере кроме нулей и единичек в ячейках регистров вообще ничего нет.
Просто хотелось бы выяснить существует ли какой-нибудь математический алгоритм сравнения чисел, без сравнение через сравнение.

Сказано сильно, но непонятно. Поясните вашу мысль.

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

Пока мысль не пояснена, рискну спросить.

Чем, например, следующий алгоритм сравнения чисел в дополнительном коде не «математический»?

Дано два числа и , заданные двоичными строками и .
1. Получаем разность , вычитая по соотв. алгоритму из и получая представление . Вычисление разности выглядит вполне понятным и «математизируемым», но здесь его долго описывать — ТС наверняка знает, как разность в дополнительном коде вычисляется.
2. Проверяем, совпадают ли записи и — это выполняется, если совпадают попарно каждые компоненты записей. Если совпадают, выходим с результатом .
3. Проверяем, совпадает ли (знаковый бит) с . Если да, результат . Если нет, .

Как-нибудь разложить проверку совпадения двух «атомарных» значений нельзя.

Если рассматривать процессоры древние x86-процессоры 8086, то инструкция сравнения на самом деле это инструкция вычитания одного числа из второго, но без записи результата в регистр, но зато с установкой флагов. По флагам "перенос", "переполнение" можно таким образом определить, какое число было больше. Если стоит флаг "ноль", то значит числа были одинаковые.
Поздние x86-процессоры с точки зрения программера работают так же, но внутри там, конечно, всё может быть сильно по-другому.

Последний раз редактировалось zm_sansan 01.11.2012, 12:24, всего редактировалось 8 раз(а).

ЗЫ лично я, когда писал на ассемблере с использованием формата плавающей запятой, сравнивал вручную следующим образом - вычитал одно число из другого (с помощью функции из пары десятков команд) и проверял результат на ноль и смотрел его знаковый бит.
Я просто думал, что проверка результата на ноль и просмотр знакового бита осуществляется через проверку на равенство с нулём или единицей. Типа "если(результат ==0)..". То есть операция сравнения исходных чисел выражается через сравнение результата вычитания с нулём и просотра знакового бита тем же сранением с 0 или 1. Получается тупик, так как сравнение выражается через сравнение.
Но потом понял, что ту же проверку на ноль или на значение знакового бита можно реализовать через Булеву логику, т.е. "если (результат ^ 1). ", т.е. проверка осуществляется через какую либо бинарную операция. Вычитание тоже можно реализовать с помощью Булевой логики. А булева логика в компе реализуется с помощью логических элементов, реализующих какую либо бинарную операция. Из Вики: Физически логические элементы могут быть выполнены механическими, электромеханическими (на электромагнитных реле), электронными (на диодах и транзисторах), пневматическими, гидравлическими, оптическими и др.
То есть мне теперь понятно, что сравнение можно реализовать так:
(часть уже тут описали)
Дано два числа и , заданные двоичными строками и .
1. Получаем разность , где . Вычисление разности выглядит вполне понятным и «математизируемым», но здесь его долго описывать — ТС наверняка знает, как разность в дополнительном коде вычисляется. (Я так пониманию, что разность теме же бинарными операциями осуществляется)
2. Проверяем, совпадают ли записи C и — это выполняется, если совпадают попарно каждые компоненты записей. Если совпадают, выходим с результатом . (Совпадение проверяем той же бинарной операцией)
3. Проверяем, совпадает ли (знаковый бит) с 1 . Если да, результат . Если нет, .
Может в компе это не совсем так и реализуется, но это один из работоспособных результатов. Все очень просто - в компьютере есть только биты, которые могут принимать только 2 значения - 0 и 1. И есть коротенький (порядка полутора десятков) набор команд процессора для работы с ними. Все остальное - уже натянутые на это абстракции: байты, числа, строки, массивы, типы, данные, протоколы, форматы, среды, операционные системы и т.д. Все очень просто - в компьютере есть только биты, которые могут принимать только 2 значения - 0 и 1. И есть коротенький (порядка полутора десятков) набор команд процессора для работы с ними. Все остальное - уже натянутые на это абстракции: байты, числа, строки, массивы, типы, данные, протоколы, форматы, среды, операционные системы и т.д.
Да, уже понятно=) Спасибо, всем, что помогли разобраться!

Последний раз редактировалось Профессор Снэйп 03.11.2012, 09:47, всего редактировалось 1 раз.


Ну Вы и ссылку дали! Там для получения книги надо вводить номер сотового телефона, на который придёт смс-код подтверждения. Книга мне показалась интересной, но я ещё не настолько выжил из ума, чтобы номер своего сотового направо и налево в интернете раздавать. Нельзя ли получить более приемлемую ссылку на эту книгу?

Последний раз редактировалось profrotter 03.11.2012, 10:19, всего редактировалось 1 раз.

1. На странице, на которую ведёт моя ссылка, выбираете depositfiles.com
2. На depositfiles.com давите на кнопку "обычное скачивание"
3. В форме запроса о получении пробного "голд-статуса" давите на ссылку "нет, спасибо".
4. Ждёте 60 секунд.
5. вводите данные в форму защиты от роботов (1-2 раза)
6. Нажимаете на кнопку "скачать файл"

Если честно, когда я давал ссылку, я её не проверял. В своё время я держал в руках бумажную версию. Предупреждаю сразу: книжка для детей с фонариками и азбукой морзе - научно-популярная то бишь.

zm_sansan
Тут бы профессиональное что-то выложить, но видимо тут нет специалистов. Есть вузы в которых это подробно проходят. Если задаться вопросом то книги можно найти.

На пальцах попробую описать. Тоже в свое время как и автор интересовался этим вопросом.

Почти каждая операция выставляет флаги.
Сравнение происходит в 2 стадии.
1) Вначале выполняется операция сравнения результат заносится в регистр и выставляются флаги.
2) Затем на основе флагов выполняется условный переход.

1.1) В качестве операции сравнения обычно применяют вычитание или булевую операцию "И"
1.2) флаги существует 3-4 основных флага.
- флаг нуля;
- Флаг переноса/заёма
- флаг переполнения;
- флаг знак числа(+,-).

Выставление флага выполняется при помощи булевых операций.
К примеру флаг нуля выставляется при помощи "или не".

К примеру нам надо сравнить 2 числа на равенство. Загружаем числа в регистры вычитаем одно из другого. Процессор выставляет флаги, а после выполняется сравнение.
Код на языке высокого уровня

Вот как это выглядит в эмуляторе

_ZF:=Ord(Boolean(not Result)); // Флаг нуля
_SF:=(Result shr 7) and 1; // Флаг знак числа
_PF:=Result and 1; // Флаг чётности(означает чёт или нечет)
_OF:= ((a xor b) and (a xor Result)) shr 7; // Флаг переполнения
_CF:=Result shr 8; // Флаг заёма или флаг переноса

_AF:=((a xor b xor Result) shr 4) and 1; // Вспомогательный Флаг переполнения в x86 используется для десятичной арифметике
end;

// Команда условного перехода.
procedure JccNear16(ofs:Word; cc:Byte);
var Flag:Boolean;
begin
Flag:=False;
case сс of
0:Flag:=(_of=1); // JO
1:Flag:=not(_of=1); // JNO
2:Flag:=(_cf=1); // JB
3:Flag:=not(_cf=1); // JAE
4:Flag:=(_zf=1); // JZ или JE или " <>"
6:Flag:=(_cf=1) and (_zf=1); // JBE
7:Flag:=not((_cf=1) and (_zf=1)); // JNA
8:Flag:=(_sf=1); // JS
9:Flag:=not (_sf=1); // JNS
$A:Flag:=(_pf=1); // JP
$B:Flag:=not (_pf=1); // JNP
$C:Flag:=(_sf<>_of); // JL
$D:Flag:=(_sf=_of); // JGE
$E:Flag:=(_zf=1) or (_sf<>_of); // JLE
$F:Flag:=not (_zf=1) or (_sf<>_of); // JG
end;
if Flag then
NewRegs._EIP:=(NewRegs._EIP+ofs) and $FFFF;
end;

Схемно реализовать не трудно. На логических элементах и сумматорах.
Сумматор в свою очередь реализуется, опять таки на логических элементах.
Вычитание можно сделать по разному. Если числа в дополненном коде. То можно изменить знак числа и выполнить сложение
Было:

Стало:


Изменение знака для чисел в дополненном коде можно сделать как.

Здравствуйте. Если вы собираетесь изучить язык программирования python или любой другой язык, Вам необходимо знать, как компьютер хранит и обрабатывает числа. В привычной для нас системе исчисления десять знаков от 0 до 9, и называется она десятичной. А почему именно десять цифр? Видимо потому, что первобытные люди, которые изобрели эту систему, пользовались для счета пальцами рук.

Существует так же восьмиричная система исчисления. Она имеет только восемь цифр от 0 до 7. Есть еще и шестнадцатиричная система исчисления. В ней используются шестнадцать цифр. Для обозначения первых десяти цифр применяются цифры от 0 до 10, а недостающие шесть цифр дополняют буквами A, B, C, D, E, F. Но мы на них останавливаться не будем.

Сегодня поговорим о двоичной системе исчисления. Для записи любого числа используются две цифры 0 и 1. Процессор компьютера состоит из миллиардов маленьких транзисторов, которые имеют состояние логического нуля 0 – когда напряжение на выходе отсутствует, и состояние логической единицы 1 – когда на выходе присутствует напряжение. Компьютеру удобно использовать данную систему.

В привычной для нас десятичной системе, если нам нужно записать число меньше десяти, мы используем всего одну цифру. Для записи числа от 10 и 99, мы вводим новый разряд, который сначала мы приравниваем единице. Подставляя в младший разряд те же цифры от 0 до 9, после 9 опять идет 0 и мы получаем новый десяток. Когда во втором разряде мы дойдем до 99, вводим третий разряд от 100 до 999, потом четвертый, пятый и т. д.

В двоичной системе действует то же правило, только для записи числа используются две цифры 0 и 1. Поэтому, при увеличении на один, после 1 снова идёт 0, и при этом вводим следующий разряд. В двоичной системе числа от 0 до 10 выглядят так: 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001.

Для выполнения операций над числами компьютер:

Переводит число из десятичной системы в двоичную;

выполняет необходимые операции (например, сложение);

результат обратно переводит в десятичную систему и выдает нам.

Давайте рассмотрим несколько примеров как можно число из десятичной системы исчисления, перевести в двоичную систему исчисления:

Возьмем число 123 и воспользуемся методом последовательным делением на число 2

Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.

Информатика. 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. Попытайтесь самостоятельно сформулировать основные принципы представления данных в компьютере.

Читайте также: