ALU의 구성요소, 정수의 표현

원래벌레·2022년 4월 11일
0

💎ALU의 구성 요소

1) 산술 연산장치 : 산술 연산을 수행
2) 논리 연산장치 : 논리연산 수행
3) 시프트 레지스터 : 비트들을 좌측 or 우측으로 이동
4) 보수기 : 음수표현
5) 상태레지스터 : 연산 결과의 상태를 나타내는 플래그를 저장

💎 정수의 표현

💍 10진수 -> 2진수 변환

💍 2진수 -> 10진수 변환

💍 2진수 소수표현법

💍 1이 연속으로 있는 2진수의 계산법

  • ex) 01100 을 2n2m2^n-2^m 형식으로 표현 하여라. (A) 24212^4-2^1
    -해석 : 11이 연속되어 있는 숫자 윗 자리수에서 0이 시작되는 자리수를 빼라.

💍 2진수의 음수표현

4비트기준
1) 부호화 방법 : 7 ~ -7
2) 1의 보수 방법 : 7 ~ -7
3) 2의 보수 방법 : 7~ -8 ( -0 에 대한 값은 없음)

💍 2의보수 표현법

1) 보수화 한다.
2) 1을 더한다.

💍 signed ,unsigned

32비트기준

  • signed는 -2147483648~2147483647 까지의 갚을 갖는다.

  • unsigned는 0~4294967259 까지의 값을 갖는다.

  • unsigned의 표현은 값 뒤에 U를 적어준다. ex)4294967259U

  • signed(int) 값과 unsigned 값을 비교 할 때는 signed를 unsigned로 변환 후 둘을 비교한다.

💍 signed와 unsigned의 타입 변환

  • signed가 unsigned로
    1) signed에서 -1 은 unsigned에서는 4294967259U 이다.
    2) 즉 음수 signed 값은 unsigned로 바꾸게 되면, n+232n+2^{32}가 된다.

  • unsigned가 signed로
    1) unsigned가 4294967259 일 때, signed로 변환 시, -1이 된다.
    2) unsigned가 2147483648 일 때, signed로 변환 시, -2147483648이 된다.
    3) 즉 2312^{31} 값을 초과하는 unsigned의 값을 signed로 바꾸면 n232n-2^{32}가 된다.

💍 signed와 unsigned의 casting 문제 풀이법

1) 먼저 주어진 수가 unsigned 인지 signed인지 타입에 대해서 인식을 한다.
2) 타입이 다르면, unsigned로 통일을 해준다.
3) unsigned로 계산시 signed 값에 x+2wx+2^{w}를 해준다.
4) signed로 계산시 unsigned 값에 x2wx-2^{w}를 해준다.

profile
학습한 내용을 담은 블로그 입니다.

0개의 댓글