Подписанный C++ int представлен внутри компьютера

краткое описание

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

Почему бинарный?

Цифровой мир преобразуется из реального мира.Для этого процесса преобразования требуется среда.Уровень напряжения может хорошо представлять два состояния 0 и 1 и удовлетворять двум возможностям дискретизации и кодирования.Из-за аппаратных ограничений компьютера само оборудование может только дискретизировать данные и производить выборку данных. Кодирование заключается в моделировании и восстановлении реальной информации путем формулирования определенных правил.
Преимущества использования двоичного кода следующие:
1. Состояние стабильное, и есть только два состояния 0 и 1.
2. Двоичное кодирование простое, а вычисления просты для машинной реализации.
3. 01 соответствует истинности и ложности логических утверждений и соответствует логическим вентилям.

int хранится как числовые данные внутри компьютера

Система команд может идентифицировать основные типы данных, которые делятся на числовые данные и нечисловые данные, а int относится к числовым данным.

Дополнение

Поскольку операция дополнения очень проста, реализуется единство сложения и вычитания.Будь то положительное число или отрицательное число, дополнение числа:

[ XT ] дополнительный код = M + XT ( mod M ), где M — модуль [X_T ]_ {дополнительный код } = M + X_T (mod M ), где M — модуль[ ХТ]дополнять"="М+ИксТ( м о д М ) ,где М - модуль

И сложение, и вычитание двух чисел могут быть выражены с помощью дополнения до двух и по модулю.
Поскольку, когда дополнительное число равно n, целое число 2 n − 1 2^{n-1}2n - 1 дополнение:

[ 2 n - 1 ] дополнение = [ 2 n + 2 n - 1 ] ( mod 2 n ) знак равно 10 ⋅ ⋅ ⋅ 0 ( n - 1 нули ) [2 ^ {n-1}] _ {дополнение} = [2 ^n + 2^{n-1}] (mod 2^n) = 1 0···0(n-1 нулей)[ 2п - 1 ]дополнять"="[ 2н+2п - 1 ](моd2н )"="10 ⋅⋅⋅0 ( п1 0 ) _

Старший бит равен 1, представляя отрицательное число, которое не соответствует спецификации, поэтому в определении диапазон int установлен равным [ - 2 n - 1 - ( 2 n - 1 - 1 ) -2 ^ {n -1} - (2^{n- 1}-1)2п - 1( 2п - 11 ) ]

Guess you like

Origin blog.csdn.net/sinat_28199083/article/details/126273280
Recommended