2의 보수로 나눗셈

  1 #include <stdio.h>
  2
  3 int main() {
  4     int val1;
  5     int val2;
  6     int answer = 0; // 몫
  7     int remainder = 0; // 나머지
  8
  9     val1 = 198;
 10     val2 = 75;
 11     printf("%d / %d =\n", val1, val2);
 12
 13     val2 = ~val2 + 1; // 2의 보수
 14     printf("%d\n", val2);
 15
 16     while(1) {
 17         val1 += val2;
 18         if(val1 < 0)
 19             break;
 20         answer++;
 21         remainder = val1;
 22     }
 23     printf("answer is %d, remainder %d\n", answer, remainder);
 24
 25     return 0;
 26 }


˚ 수의 종류

복소수

 실수

유리수

정수

자연수 

(음의 정수, 0)

(무리수)

 (허수)

1) 자연수 N : 0보다 큰 정수

2) 정수 Z : 양의 정수, 0, 음의 정수로 구성된 수

3) 유리수 Q : 두 정수 a,b로 a/b(분수)의 꼴로 나타낸 수이며, b≠0 이고 b=1이면 정수가 된다. 

*하한항(lowset) : 분모와 분자 사이에 1 이외의 공약수가 존재하지 않는 유리수

4) 무리수 I : 실수 중 유리수가 아닌 수. a/b(b≠0)로 나타낼 수 없는 수.

5) 실수 R : 무리수와 유리수를 모두 포함하는 수.

6) 복소수 C : x² = -1을 포함하는 수 체계

 

˚ 수의 연산

1) 닫힘 성질

 

 +

 -

 ×

 ÷

 자연수 (N)

 O

 X

 O

 X

 정수 (Z)

 O

 O

 O

 X

 유리수 (Q)

 O

 O

 O

 O

 무리수 (I)

 X

 X

 X

 X

 실수 (R)

 O

 O

 O

 O

 복소수 (C)

 O

 O

 O

 O

2) 수의 특징

 x+y=y+x, xy=yx

 교환법칙 

 (x+y)+z=x+(y+z), (xy)z=x(yz)

 결합법칙

 x(y+z)=xy+xz

 분배법칙
 0  합에 대한 항등원
 1  곱에 대한 항등원
 -a  합에 대한 역
 1/a  곱에 대한 역

3) (시그마) : 일정한 규칙을 나열한 수를 더할 때 쓰는 기호

4) (프로덕트) : 일정한 규칙을 나열한 수를 곱할 때 쓰는 기호

5) 나머지 연산 : 정수 n을 d로 나누어 나오는 몫 q와 나머지 r이 있을때, r을 구하는 연산.

n mod d = r     n mod d = 0 ⇔ d|n

 

˚ 보수

1) 컴퓨터에서의 데이터 표현

 최상위 비트

부호비트

 데이터 비트

 데이터 비트

 데이터 비트

 데이터 비트

 데이터 비트

데이터 비트

 최하위 비트

데이터 비트

양수인 경우 부호비트가 0, 음수인 경우 1이 된다.

* 부호화-절대치 표현 : 부호와 데이터의 절댓값을 그대로 표현

1의 보수 : 음수 표현에만 사용 된다.

   2진법에 있어서 보수를 취할 때 각 자리의 반대수 (0→1, 1→0)를 취하는 보수.

2의 보수 : 음수 표현에만 사용되고, 절대치 비트에대한 1의 보수에 1을 더한다.

+ Recent posts