Положительные и отрицательные числа.

С предыдущих уроков по языку Assembler мы знаем что процессор работает с двоичными числами, эти числа могут быть положительными или отрицательными. И сегодня я подробно расскажу какие бывают положительные (без знака) и отрицательные (со знаком) числа.

Положительные числа

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

В процессорах семейства Intel основной единицей хранения всех типов данных является байт. Байт, состоит из восьми битов. В таблице представленной ниже приведены диапазоны возможных значений целых положительных чисел, с которыми может работать процессор:

Тип числа Диапазон значений Степени двойки
Байт 0…255 0…(28 – 1)
Слово 0…65 535 0…(216 – 1)
Двойное слово 0…4 294 967 295 0…(232 – 1)
Учетверённое слово 0…18 446 744 073 709 551 615 0…(264 – 1)


При работе с числами не забывайте, что в байт можно записать число со значением не более 255, в слово – со значением не более 65 535 и т.д. Например, если при работе с байтом вы выполните операцию сложения 255 + 1, то в результате должно получиться число 256. Однако если вы запишите результат в байт, то, результатом будет не 256, а 0. Такая ситуация бывает в случаи “переполнения”.

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

Отрицательные числа

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

Отрицательные числа – это числа со знаком минус.

Диапазоны возможных значений отрицательных чисел:

Тип числа Диапазон значений Степени двойки
Байт –128…+127 -27…(27 – 1)
Слово –32 768…+32 767 -215…(215 – 1)
Двойное слово –2 147 483 648…
+2 147 483 647
-231…(231 – 1)
Учетверённое слово –9 223 372 036 854 775 808…
+9 223 372 036 854 775 807
-263…(263 – 1)


Для того чтобы указать знак числа, достаточно одного разряда (бита). Обычно знаковый бит занимает старший разряд числа. Если старший бит числа равен 0, то число считается положительным. Если старший разряд числа равен 1, то число считается отрицательным.

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

Например, если размер положительной переменной равен 1 байт, то она может принимать всего 256 различных значений. Это означает, что мы не сможем представить с её помощью число, больше 255 (111111112). Для такой же отрицательной переменной максимальным значением будет 127 (011111112), а минимальным -128 (100000002). Аналогично определяется диапазон для 2- и 4-байтных переменных.

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Команды работы с битами.

Команды работы с битами.

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

 
Основы создания макросов в Assembler.

Основы создания макросов в Assembler.

Макросы — это шаблоны для генерации кода. Один раз создав макрос, можно использовать его во многих местах в коде программы. Макросы делают процесс программирования на

 
Синтаксис объявления меток.

Синтаксис объявления меток.

Метка в ассемблере – это символьное имя, обозначающее ячейку памяти, которая содержит некоторую команду. Метка может содержать следующие символы: Буквы (от A до Z и

 
Локальные переменные.

Локальные переменные.

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

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: