- 128 의 바 이 너 리 는 어떻게 표시 합 니까?
오늘 8 위 2 진법 을 본 범 위 는 - 128 - 127 입 니 다.왜 이 범위 인지 생각해 본 적 이 없 었 는데, 자세히 생각해 보 니 이상 하 다. - 128 이 어떻게 표 시 했 는 지.127 은 1111 1111 인 데 - 128 은 왜 1000 만 이 야? - 0 아니 야?그래서 다음 에 할 말 이 있 습 니 다.
STEP1
"- 128 이 왜 1000 만 원인 지 근본적으로 알 기 위해 서 는 [모] 라 는 것 부터 말 하고 원래 의 코드 코드 리 코딩 에 관 한 것 을 잠시 잊 어야 합 니 다."모 '가 무엇 인지 쉽게 말 하면 범위 내의 한계 이다.전형 적 인 예 를 들 어 우리 일상생활 의 12 개의 눈금 시 계 는 0 - 12 시간 을 나타 낸다.만약 그것 이 현재 2 의 위치 에 있다 고 가정한다 면, 만약 당신 이 그것 을 4 시간, 10 의 위치 로 줄 이려 고 한다 면, 당신 은 어떻게 할 것 입 니까?시 계 를 3, 4, 5 방향 으로 8 시간 돌 릴 까요?아니면 1, 12, 11 방향 으로 시계 반대 방향 으로 4 시간 돌 릴 까요?이 두 사람의 결 과 는 모두 똑 같 아서 시 계 를 10 의 위치 에 놓 았 다. 한 번 봅 시다. 하 나 는 8 시간 걸 었 고 하 나 는 4 시간 걸 었 습 니 다. 8 + 4 = 12, 12 - 8 = 4.시계 한 바퀴 에 12 시간, 즉 가장 큰 표시 상한 선 은 12 다.앞으로 8 시간 과 뒤로 12 - 8 = 4 시간 효 과 는 같다.이 12 가 이른바 [모] 다.모드 의 범위 내 에서 + 어떤 수 X 는 + 모드 - | x | 의 효과 와 같 습 니 다.예 를 들 어 십 진법 의 수, 20 과 80 을 더 하면 100, 100 을 모델 로 한다. 그러면 우 리 는 50 - 20 = 30, 50 + 80 = 130 과 백 자리 의 숫자 를 제거 하면 모 (100) 범위 내 에서 모두 30 이 고 결 과 는 같다.바로 X - Y = X + (모 - | Y |) 입 니 다.맞 죠?그런데 위 에 저희 가 커 요. - 작 아 요. 작 으 면... - 크 면 요?어떻게
|
|
|
↓
STEP2
아니면 20 이라는 숫자, 원래 생각 했 던 대로 10 - 20 = - 10, 10 + (100 - 20) = 90, 똑 같 지 않 아 요. 그 렇 죠? 이 건 어 떡 해요?우리 의 위대 한 선인 들 은 음 수 를 절대 치 의 보수 로 표시 하 는 방법 을 생각 해 냈 다. 즉, '모 - | 음수 x |' 이다.즉 [모드] - | 음수 |, 100 - | - 10 | = 90;이렇게 하면 완벽 하지 않 습 니까? 음 수 를 나 타 낼 수 있 습 니 다! 그런데 여기에 문제 가 하나 더 있 습 니 다. - 10 을 90 으로 표시 할 수 있 으 니 원래 의 90 은 어떻게 표시 해 야 합 니까?매우 직접적 이 고 모델 범위 내 에서 둘 로 나 뉘 는데 0 - 49 는 정 수 를 나타 내 고 50 - 99 는 음 수 를 나타 낸다.
|
|
|
↓
STEP3
자, 다시 - 128 위로.8 진법 의 2 진수 에 대해 모 는 2 의 8 회, 256 이다.음 수 를 버 리 면 0 - 255 는 괜 찮 겠 지.지금 우 리 는 0255 를 반 으로 나 누 었 다. 0 - 127 과 128 - 255. 위 에서 말 한 100 처럼 0 - 127 은 정 수 를 나타 내 고 128255 는 음수 보 수의 음 수 를 나타 낸다. 즉, 128 ~ 255 는 [모델] - | 음수 x | 후의 값, 256 - | - 128 | = 128, 256 - | - 1 | = 255 이다.여기까지. 왜 8 비트 2 진수 가 표시 할 수 있 는 범위 가 - 128 - 127 인지 알 겠 지?주의해 야 할 것 은 상기 연산 들 은 모두 - 128 ~ 127 의 범위 내 에 있어 야 한 다 는 것 이다. 여기 서 마이너스 라 는 바 이 너 리 코드 는 바로 그들의 패 치 이다. 그렇지 않 으 면 넘 칠 수 있 고 이 논리 에 부합 되 지 않 는 다. 다음은 왜 - 128 이 1000 만 을 표시 하 는 지 살 펴 보 겠 습 니 다.우 리 는 256 - | - 128 | = 128 로 - 128 을 표시 하고 128 의 패 치 는 1000 만 입 니 다. 이것 이 바로 - 128 은 1000 만 으로 표시 하 는 이유 입 니 다. 마지막 으로 컴퓨터 가 어떻게 이 코드 를 구 했 는 지 말 해 보 세 요.마 이 너 스 는 컴퓨터 에서 모두 패 치 메모리 로 표시 된다. 우리 가 마 이 너 스 를 입력 할 때 컴퓨터 는 모델 - 절대 값 으로 대응 하 는 패 치 를 구 해 야 한다. 그러나 컴퓨터 는 덧셈 만 있 을 뿐이다. 이 대응 하 는 패 치 를 구하 기 위해 컴퓨터 는 원 코드 의 첫 번 째 를 변 하지 않 고 나머지 위 치 를 반 으로 한 다음 에 1 을 더 해서 이 패 치 를 구한다. - 128 은 원 코드 와 반 코드 가 없고 패 치 만 있다.다른 측면 에서 볼 때 음수 의 보충 코드 는 바로 절대 치 소스 코드 + 1 이 고 - 128 은 128 의 원 코드 10000000 구 반 0111 1111 + 1 - 1000 000 이다.
참고:https://www.zhihu.com/question/20458542/answer/40759880
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 로 데이터베이스 시트 에 따라 실체 클래스 생 성텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.