Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 25 сентября 2025 13:02

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

Ответ нейросети

25 сентября 2025 13:02

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

  1. Беззнаковые (unsigned)
  • Диапазон: 0 … 2^n − 1 (где n — число бит).
  • Пример: в 8 битах 5 хранится как 00000101.
  1. Со знаком (самый распространённый способ в аппаратуре) — двухкомплемент (two's complement)
  • Целые в диапазоне: −2^(n−1) … 2^(n−1) − 1.
  • Как кодируется:
    • Добрый (положительный) легко: число в двоичном виде с нулевым старшим битом (MSB).
    • Отрицательное число: берём двоичное представление его абсолютного значения,Invert (инвертируем все биты) и прибавляем 1.
    • MSB служит признаком знака: 0 — положительное, 1 — отрицательное.
  • Примеры (8 бит):
    • 5 — unsigned: 00000101; 5 — в знаковом тоже 00000101.
    • −5 — взять 5: 00000101 → инвертируем: 11111010 → добавляем 1: 11111011.
    • −128 — 10000000 (range даёт именно это значение для −2^7).
    • Примеры суммирования: 120 (01111000) + 10 (00001010) = 130 (10000010), но 130 воспринимается как −126 в знаковом представлении из-за выхода за диапазон, т.е. происходит переполнение.
  • Преимущества: арифметика сложения/вычитания реализуется одинаково для целых беззнаковых и знаковых; простые схемы и единые схемы нагрузок.
  • Как определить знак при чтении: если MSB = 0 — число неотрицательное; если MSB = 1 — отрицательное.
  1. Другие исторические способы кодирования целых (реже встречаются в современных процессорах)
  • знак-модуль (sign-magnitude): старший бит — знак; остальные биты — модуль числа. Например, в 8 бит: 0 0000101 означает +5, 1 0000101 — −5. Есть отдельный нуль (+0 и −0). Практически не используется в арифметике на аппаратном уровне.
  • "один комплемент" (ones' complement): отрицательное число получается инвертированием битов положительного числа. Также бывает +0 и −0. Реже используется в современной аппаратуре.
  1. Взаимосвязь с памятью и порядком байтов (эндиянность)
  • Как число хранится в памяти — набор битов в конкретном порядке байтов (little-endian против big-endian). Это влияет на то, как байты располагаться в памяти, но само значение числа определяется кодировкой (например, двухкомплемент). В большинстве современных систем это двухкомплемент и little-endian, но есть примеры и других требований в разных архитектурах.
  • Применение: при чтении из памяти компилятор/процессор интерпретируют конкретную последовательность бит/байтов согласно архитектуре.
  1. Что это значит на экзамене
  • Укажите размер (n бит) и вид кодирования.
  • Для unsigned: все биты — значение, диапазон 0 … 2^n − 1.
  • Для двоичного complemento: диапазон −2^(n−1) … 2^(n−1) − 1; знак — старший бит; отрицательные числа получают через инверсию и прибавление единицы.
  • Приведите пример кодирования конкретного числа и объясните, как определяется знак.
  • Упомяните переполнение: в двух complement переполнение обнаруживается по правилу: для знаковых чисел — когда знаки операндов совпадают, а знак результата отличается; практическая реализация в языках часто приводит к wrap-around (повторное переполнение).

Если скажете размер (например, 8, 16, 32 или 64 бита) и нужен конкретный пример, могу привести подробное разъяснение и примеры кодирования.

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

Как в памяти компьютера представляются целые положительные и отрицательные числа
Коротко: в памяти числа хранятся как последовательности бит. Как именно это число трактуют (как положительное или отрицательное) зависит от способа кодирования. Самые распространённые способы кодирования целых чисел в современных процессорах: 1) Беззнаковые (unsigned) - Диапазон: 0 … 2^n − 1 (где n — число бит). - Пример: в 8 битах 5 хранится как 00000101. 2) Со знаком (самый распространённый способ в аппаратуре) — двухкомплемент (two's complement) - Целые в диапазоне: −2^(n−1) … 2^(n−1) − 1. - Как кодируется: - Добрый (положительный) легко: число в двоичном виде с нулевым старшим битом (MSB). - Отрицательное число: берём двоичное представление его абсолютного значения,Invert (инвертируем все биты) и прибавляем 1. - MSB служит признаком знака: 0 — положительное, 1 — отрицательное. - Примеры (8 бит): - 5 — unsigned: 00000101; 5 — в знаковом тоже 00000101. - −5 — взять 5: 00000101 → инвертируем: 11111010 → добавляем 1: 11111011. - −128 — 10000000 (range даёт именно это значение для −2^7). - Примеры суммирования: 120 (01111000) + 10 (00001010) = 130 (10000010), но 130 воспринимается как −126 в знаковом представлении из-за выхода за диапазон, т.е. происходит переполнение. - Преимущества: арифметика сложения/вычитания реализуется одинаково для целых беззнаковых и знаковых; простые схемы и единые схемы нагрузок. - Как определить знак при чтении: если MSB = 0 — число неотрицательное; если MSB = 1 — отрицательное. 3) Другие исторические способы кодирования целых (реже встречаются в современных процессорах) - знак-модуль (sign-magnitude): старший бит — знак; остальные биты — модуль числа. Например, в 8 бит: 0 0000101 означает +5, 1 0000101 — −5. Есть отдельный нуль (+0 и −0). Практически не используется в арифметике на аппаратном уровне. - "один комплемент" (ones' complement): отрицательное число получается инвертированием битов положительного числа. Также бывает +0 и −0. Реже используется в современной аппаратуре. 4) Взаимосвязь с памятью и порядком байтов (эндиянность) - Как число хранится в памяти — набор битов в конкретном порядке байтов (little-endian против big-endian). Это влияет на то, как байты располагаться в памяти, но само значение числа определяется кодировкой (например, двухкомплемент). В большинстве современных систем это двухкомплемент и little-endian, но есть примеры и других требований в разных архитектурах. - Применение: при чтении из памяти компилятор/процессор интерпретируют конкретную последовательность бит/байтов согласно архитектуре. 5) Что это значит на экзамене - Укажите размер (n бит) и вид кодирования. - Для unsigned: все биты — значение, диапазон 0 … 2^n − 1. - Для двоичного complemento: диапазон −2^(n−1) … 2^(n−1) − 1; знак — старший бит; отрицательные числа получают через инверсию и прибавление единицы. - Приведите пример кодирования конкретного числа и объясните, как определяется знак. - Упомяните переполнение: в двух complement переполнение обнаруживается по правилу: для знаковых чисел — когда знаки операндов совпадают, а знак результата отличается; практическая реализация в языках часто приводит к wrap-around (повторное переполнение). Если скажете размер (например, 8, 16, 32 или 64 бита) и нужен конкретный пример, могу привести подробное разъяснение и примеры кодирования.