1.원본 코드
가장 높은 비트는 부호 비트(0은 양수, 1은 음수)로 사용되며, 나머지 비트는 값 자체의 절대값(2진수로 표시)을 나타냅니다.
단순화를 위해 1바이트를 사용하여 정수를 나타냅니다.
+7의 원래 코드는 00000111입니다.
-7의 원래 코드는 10000111입니다.
2.역코드
숫자가 양수이면 그 보수는 원래 코드와 동일합니다. 숫자가 음수이면 부호 비트는 1이고 나머지 비트는 원래 코드의 반전입니다.
단순화를 위해 1바이트를 사용하여 정수를 나타냅니다.
+7의 보수는 00000111입니다.
-7의 보수는 11111000입니다.
3. 보완 코드
보수 코드: 숫자가 양수이면 원래 코드, 보수 코드 및 보수는 동일합니다. 숫자가 음수이면 부호 비트는 1이고 나머지 비트는 원래 코드의 반전이며 전체입니다. 숫자가 1씩 추가됩니다. 단순화를 위해 1바이트를 사용하여 정수를 나타냅니다.
+7의 보수는 00000111입니다.
-7의 보수는 11111001입니다.
음수의 보수가 주어지면 이를 십진수로 변환합니다.
1. 첫째, 나는 당신에게 반론을 제기할 것입니다.
2. 이를 십진수로 변환합니다.
3. 마이너스 부호를 더하고 1을 뺍니다.
예를 들어:
11111010, 가장 높은 비트는 1이며 이는 음수입니다. 먼저 각 비트를 부정하여 00000101을 얻고, 이를 10진수로 변환하여 5를 얻고, 음수 기호를 추가하여 -5를 얻은 다음 1을 빼서 -6을 얻습니다.
int a=232;를 바이트 유형으로 변환할 때 왜 음수가 됩니까? ? ?