윤성우의 열혈 C 프로그래밍 Chapter 4 데이터 표현방식의 이해

권민정·2022년 3월 9일
0

04-1 데이터 표현 단위

  • 비트(Bit): 컴퓨터가 표현하는 데이터의 최소 단위로 2진수 값 하나를 저장
  • 바이트(Byte): 비트를 8개 묶은 것

n개의 비트를 가지고 나타낼 수 있는 데이터의 수는 2ⁿ개이다.

04-2 8진수와 16진수를 이용한 데이터 표현

  • 16진수의 값을 갖는 변수 선언 시 → int (변수이름) = 0x(값);
  • 8진수의 값을 갖는 변수 선언 시 → int (변수이름) = 0(값);

16진수 또는 8진수의 값을 갖는 변수를 printf 함수에서 서식문자 %d를 통해 출력한다면 10진수 형태로 출력됨.

04-3 정수와 실수의 표현방식

  • 부호비트(MSB): 정수의 가장 왼쪽에 존재하는 비트로, 양수는 0 음수는 1로 나타남

  • 양의 정수 표현방식: 부호비트 + 양의 정수의 2진수 표현
    ex) +5 → 00000101(부호비트 0, |5|의 2진수 표현 0000101)

  • 음의 정수 표현방식: 음의 정수 절대값의 2의 보수

    2의 보수법: 1의 보수를 취한 후 1을 더해 줌
    ex) 10진수 +5의 2의 보수를 구하려면,
    ① +5를 2진수로 표현 → 00000101
    ② 1의 보수를 취함 → 11111010
    ③ 1을 더해 줌 → 11111011
    ∴ -5를 2진수로 표현하면 11111011

  • 실수의 표현방식에는 오차가 존재한다. (부동 소수점 오차)

    04-4 비트 연산자

  1. & 연산자: 비트 단위 AND. 두 개의 비트가 모두 1일 때, 1 반환

  2. | 연산자: 비트 단위 OR. 두 개의 비트 중 하나라도 1이면, 1 반환

  3. ^ 연산자: 비트 단위 XOR. 두 개의 비트가 서로 다르면, 1 반환

  4. ~ 연산자: 비트 단위 NOT. 비트를 0에서 1로, 1에서 0으로 반전(보수 연산, MSB도 반전됨)

  5. ≪ 연산자: 비트의 왼쪽 이동(Shift)
    ex) num1 << num2 → num1의 비트 열을 num2칸씩 왼쪽으로 이동시킨 결과를 반환

  6. ≫ 연산자: 비트의 오른쪽 이동(Shift)
    ex) num1 >> num2 → num1의 비트 열을 num2칸씩 오른쪽으로 이동

    	> 만약 num1이 음수라면? → cpu에 따라 >> 연산의 결과가 달라진다. (음의 값 유지를 위해 1을 채울 수도, 상관하지 않고 0을 채울 수도)

① 비트 열을 왼쪽으로 1칸씩 이동시킬 때마다 정수값은 2배가 됨
② 비트 열을 오른쪽으로 1칸씩 이동시킬 때마다 정수값은 1/2배가 됨

0개의 댓글