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

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

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

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

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

Тип числаДиапазон значенийСтепени двойки
Байт0…2550…(28 – 1)
Слово0…65 5350…(216 – 1)
Двойное слово0…4 294 967 2950…(232 – 1)
Учетверённое слово0…18 446 744 073 709 551 6150…(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-байтных переменных.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

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

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