/ 영어 대소문자, 아라비아 숫자, 특수 문자
유니(UNI) 코드 : 16비트 /2의 16승 => 65536개의 문자 약속 가능
/ 아스키 코드의 문자 모두 포함, 모든 나라의 언어와 관련된 문자
※ - 'A' => 65 / 'a' => 97 / '0' => 48
※ 영어 대소문자로 맞춰 사용하는 것이 제일 좋은 경향이 있다.
[Q] 학번을 아스키 코드와 유니코드로 표현하시오. (이진수)
B8178805
ASSCII: 01000010 / 00111000 (8) / 00110001
UNI: 00000000 01000010 / 00000000 00111000 (8) / 00000000 00110001
[Q] 본인 이름 이니셜(대문자)을 아스키(ASCII)코드 & 유니(UNI)코드로 표현하시오.
(구자윤 = KJY
ASSCII : 01001011(K) 01001010(J) 01011001(Y)
[Q] 십진수 1004를 컴퓨터에서 표현하는 정수 이진수로 표현하면 다음과 같다.
0000 0011 1110 1100 (2)
[참고] 컴퓨터 내부에서 정수는 일반적으로 4바이트로 처리함
[Q] 본인 학번에서 B를 제외한 숫자를 십진수라고 가정하고 컴퓨터에서 표현하는 정수 이진수로 변환하시오
8178805
0000/0000 0111/1100 1100/1100 0111/0101
[참고] 컴퓨터에서 정수 표현
- 십진수 9일 경우
: (1바이트) 00001001
: (2바이트) 00000000 00001001
: (4바이트) 00000000 00000000 00000000 00001001
: (8바이트) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00001001
[참고]
양의 정수 9와 음의 정수 9를 2바이트로 표현하면
+9 = 00000000 00001001
-9 = 11111111 11110111 (전체를 다 바꾼 다음에 마지막 자리에 +1을 한다.)
:(1바이트) 11110111
:(2바이트) 11111111 11110111
:(3바이트)
:(4바이트)
* 00000000 00001001 (+9)
1. 10000000 00001001 (-9) -> 부호화 크기 표현 방법
2 11111111 11110110 (-9) -> 일의 보수 표현 방법
3. 11111111 11110111 (-9) -> 이의 보수 표현 방법 (일의 보수 +1)
? 만약 마지막 자리가 0이면 더하기 1을 함으로써 앞의 모든 숫자들이 바뀌나요?
-> (1)과 (2)의 방법은 양의 정수와 음의 정수를 더했을 때 0(제로)가 나오지 않음
-> (3)의 방법은 0이 나옴(현재 컴퓨터 시스템에서 사용하고 있는 방법)
-> (1)은 +0, -0이 존재함 / (2) 또한 +0, -0이 존재함 그러나 (3)은 오로지 하나의 0만 존재한다.
[Q] 정수를 1바이트로 처리한다고 가정하였을 경우 다음 이진수를 십진수로 변환하시오.
가. 00101100 (2) -> 44
나. 11110110 (2) -> -10
다. 01110111 (2) -> 119
라. 11111111 (2) -> -1
음의 정수를 구할때는 양에서 음으로 바꿀 시 +1을 했으므로 -1을 진행한 상태에서 값을 구한다.
[참고] 정수(signed integer) 표현 시
- 1바이트 : -128~+127
- 2바이트 : -32768 ~ +32767
- 4바이트 : -2147483648~ +2147483647
만약 정수(unsigned integer)표현시
- 1바이트 : 0 ~ 255
- 2바이트 : 0 ~ 65535
- 4바이트 : 0 ~ ( 2147483648 +2147483647 )
[정리]
본인 학번 (문자 : 아시키 코드 - 이진수 )
B8178805 - 01000010(B) 00111000(8) 00110001(1) 01101111(7) 00111000(8) 00111000(8) 00110000(0) 00110101( 5)
본인 학번 (정수 - 이진수)
8178805 ( 16진수는 4자리로 끊어서 읽는고 8진수는 3자리 식 끊어서 읽는다.)
00/000/000/011/111/001/100/110/001/110/101
2진수 : 00000000 01111100 11001100 01110101
00/000/000/011/111/001/100/110/001/110/101
2진수 : 00000000 01111100 11001100 01110101
16진수 : 0 0 7 C C C 7 5
8진수 : 0 0 0 3 7 1 4 6 1 6 5
[Q] 색상표 창고 3바이트로 표현
- 빨간색을 16진수, 2진수, 8진수로 표현
16진수 - FF0000 - 이게 어떻게 255가 되나요?
2 진수 - 1111 1111 0000 0000 0000 0000
8 진수 - 1111/1111/0000/0000/0000/0000 - 77600000
- 초록색의 16진수, 2진수, 8진수로 표현
16진수 - 00FF00
2진수 - 0000 0000 1111 1111 1111 1111 0000 0000
8진수 - 00177400 (8)
[퀴즈] 503과 -503을 이진수, 16진수, 8진수로 표현하시오 ( 현재 컴퓨터 시스템 기준.)
503을 2진수
00000000 00000000 00000001 11110111 [2진수]
0 0 0 0 0 1 F 7 [16진수]
00/000/000/000/000/000/000/000/111/110/111 -> 737 [8진수]
-503
1111 1111 1111 1111 1111 1110 0000 1001 [2진수]
FFFFFE09 [16진수]
11/111/111/111/111/111/111/111/000/001/001 -> 37777777011 [8진수]
실수는 8바이트로 처리한다. -> 64비트
IEEE 754
IEEE 754의 부동 소수점 표현은 크게 세 부분으로 구성되는데, 최상위 비트는 부호를 표시하는 데 사용되며, 지수 부분(exponent)과 가수 부분(fraction/mantissa)이 있다.
- 예시
−118.625 (십진법)을 IEEE 754 (32비트 단정도)로 표현해 보자.
- 음수이므로, 부호부는 1이 된다.
- 그 다음, 절댓값을 이진법으로 나타내면 1110110.101(2)이 된다.
- 소수점을 왼쪽으로 이동시켜, 왼쪽에는 1만 남게 만든다. 예를 들면 1110110.101(2)=1.110110101(2)×2⁶ 과 같다. 이것을 정규화된 부동소수점 수라고 한다.
- 가수부는 소수점의 오른쪽 부분으로, 부족한 비트 수 부분만큼 0으로 채워 23비트로 만든다. 결과는 11011010100000000000000이 된다.
- 지수는 6이므로, Bias를 더해야 한다. 32비트 IEEE 754 형식에서는 Bias는 127이므로 6+127 = 133이 된다. 이진법으로 변환하면 10000101(2)이 된다.
이 결과를 정리해서 표시하면 다음과 같다.[1]