알고리즘 서론 Ch2.1 - 4 연습 문제
분석: 이 진 정수 의 인 코딩 은 여기 서 원 코드 와 패 치 를 고려 하고 원 코드 는 패 치 로 전환 하여 연산 할 수 있 으 며 이것 은 패 치가 연산 에서 의 장점 을 나타 낸다.
실질 적 으로 아 날로 그 컴퓨터 바 이 너 리 패 치 의 덧셈 이다.
컴퓨터 에 서 는 패 치 로 덧셈 연산 을 하고 저장 장치 와 연산 레지스터 의 수 를 모두 패 치 로 표시 하 며 데이터 연산 결과 도 패 치 로 표시 한다.
정점 소수 부호 덧셈 의 연산 공식 은
[x] 보 + [y] 보 = [x + y] 보 (mod 2)
정점 정수 까지 보급 한 후에 정점 정수 부호 덧셈 의 연산 공식 은 다음 과 같다.
[x] 보 + [y] 보 = [x + y] 보 (mod 2n+1)
이 공식 을 간단하게 증명 한다.
패 치 의 정의 에 따 르 면: [x] 패 치 = 2n-x (n 은 글자 길이 - 1)
그럼, [x] 보 + [y] 보 = 2n-x + 2n-y = 2n+1 –(x+y) = [x + y] 보충 (mod 2n+1)
간단하게 언어 로 설명 합 니 다. 코드 를 추가 할 기호 위 치 를 연산 에 가 져 옵 니 다. 위치 에 따라 대응 하고 위치 가 있 으 면 들 어 갑 니 다. 기호 위치의 진 위 를 버 립 니 다 (진 위 를 가지 고 있다 면).
코드 가 간단 해 요.
void sum(int* a, int* b, int len, int* c)
{
int carry = 0;
int temp, i;
for(i=len-1; i>=0; i--)
{
temp = a[i] + b[i] + carry;
if(temp >= 2)
{
carry = 1;
c[i+1] = temp - 2;
}
else
{
carry = 0;
c[i+1] = temp;
}
}
c[0] = (a[0] + b[0] + carry) % 2;
}
설명:
1. 보충 코드 의 실질.
시 계 를 예 로 들 면 3 시 는 시계 가 12 시 방향 에서 시계 방향 으로 90 도 를 돌 고 12 시 방향 에서 시계 방향 으로 270 도 를 돌 리 는 것 을 나 타 낼 수 있다.
즉 3 = 0 + 3, 그리고 3 = 12 - 9 이다. 그러면 0 - 12 의 임 의 숫자 는 모두 두 가지 표현 방식 이 있다. x 와 12 - (12 - x).
바 이 너 리 에 대응 하 는 패 치 입 니 다. 시계 와 같은 점 은 값 이 넘 치면 순환 이 생 긴 다 는 것 입 니 다. 12 시 이후 에는 1 시 로 돌아 가 반복 되 며, 최대 양수 가 넘 치면 마이너스 가 됩 니 다.
2 、 왜 패 치 를 사용 합 니까
기 호 를 연산 에 가 져 와 서 감법 을 덧셈 으로 바 꿀 수 있다.
컴퓨터 내 부 는 덧셈 기 만 있 고 뺄셈 기 가 없 으 며 덧셈 기 는 간단 한 것 과 비 문 으로 조합 할 수 있 으 며 뺄셈 기의 제작 라인 이 복잡 하기 때문에 덧셈 을 사용 하여 뺄셈 을 대체 하 는 것 이 필요 하 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Docker를 사용한 React 및 .NET Core 6.0 샘플 프로젝트 - 1부이 기사에서는 Entity Framework Core Code First 접근 방식을 사용하는 ASP.NET Core 6.0 WEP API의 CRUD(만들기, 읽기, 업데이트 및 삭제) 작업에 대해 설명합니다. 웹 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.