-
Chapter 2 (Bits, Bytes, and Integers)컴퓨터 시스템 개론 2022. 3. 22. 01:02728x90
Binary Representation
Bit : 두가지 형태로 나타냅니다 (0 or 1)
Representing Information
...
Encoding Byte Values
Byte = 8 bits
Binary : 00000000(2) to 11111111(2)
Decimal : 0(10) to 255(10)
Hexadecimal : 00(16) to FF(16)
우리가 C언어 에서 보는 0x 또는 0X로 시작하는 수들은 Hexadecimal 표기법입니다.
0xFA1D378B = 0Xfa1d37b 즉 대소문자 구분이 없습니다.
예를들어 10진수 314156을 16진법 표기법으로 나타내면
314156 = 19634 * 16 + 12 (C)
19634 = 1227 * 16 + 2 (2)
1227 = 76 * 16 + 11 (B)
76 = 4 * 16 + 12 (C)
4 = 0 * 16 + 4 (4)
=> 0x4CB2C 입니다.
Numeric Ranges
Unsigned value
UMin = 0 (0000)
UMax = 2^w - 1 (11111....11)
Two's Complement Values
TMin = -2^(w-1) (1000....00)
TMax = 2^(w-1)-1 (0111...11)
-1 = 1111111...111
word 값에 따라 달라질 수 있습니다.
여기서 중요한 사실은 |TMin| = TMax + 1
즉, 음수로 표현할 수 있는 범위가 양수로 표현할 수 있는 범위보다 1더 많습니다. (비대칭 범위)
UMax = 2 * TMax + 1
Sign Extension
주어진 w개의 bit signed 정수 x에 대해서 같은 값을 가지면서 w + k bit 정수로 바꾸면 어떨까?
short int x = 15213; int ix = (int) x; short int y = -15213; int iy = (int) y;
short int의 크기는 2byte(16 bit) 이고 int의 크기는 4byte(32 bit) 입니다.
작은 data type 크기에서 큰 data type 크기로 바꾸는 것은 C언어에서 자동적으로 처리해줍니다.
Summary
컴퓨터는 bit로 표현한 정보를 encode, store, manipulate할 수 있습니다.
음수의 표현은 2's complement로 표현합니다.
'컴퓨터 시스템 개론' 카테고리의 다른 글
Chapter 7 : Machine-Level Programming 3 (Procedure) (0) 2022.04.25 Chapter 6 : Machine-Level Programming 2 (Control) (0) 2022.04.06 Chapter 5 : Machine-Level Programming 1 (Basis) (0) 2022.03.30 Chapter 3 : Float (0) 2022.03.27 chapter 1 (0) 2022.03.05