[디지털논리회로] 연습문제 1장, 2장 레포트
연습문제 1장
아날로그 신호는 시간에 따라 연속적인 값을 갖는 신호이다. 예시로는 온도와 소리등이 있다. 반면 디지털 신호는 분명하게 구별되는 이산적인 신호값을 갖는 신호이다.
*1주차 동영상 강의를 통해서 학습하였다.
4. (1) 64bit = 8byte (2) 1024 = 128byte (3) 8byte = 64bit (4) 1Kbyte = 8,192bit (5) 32Kbyte = 32,768byte (6) 64Mbyte = 67,108,864byte (7) 6.4Gbyte = 6,871,947,674byte
* 1byte = 8bit, 1Kbyte = 1024byte, 1Mbyte = 1024Kbyte, 1Gbyte = 1024Mbyte 이다. 숫자가 커져서 계산기를 통해서 답을 구해냈다.
5. 8비트
*2진수로 측정하는 명암정도를 4비트로 하였을 때 0000~1111로 값을 가졌다면 2^4개의 값을 가질 수 있을 것이다. 따라서 254가지의 명암 정도를 구분하기 위해서는 0000(검은색), 1111(흰색)을 더한 256가지의 명암을 구분할 수 있도록 (2^8 = 256) 8개의 비트가 필요하다고 생각한다.
6.약 14장
*300만 화소에 R,G,B가 각각 8비트씩 한 화소에 저장 된다면 300만 화소에 카메라의 한 장은 72,000,000 비트를 차지한다. 그렇다고 하였을대 1M은 2^20 = 1,048,576 128MB이므로 128을 곱하면 134,217,728 추후 1Byte는 8bit 이므로 다시 8을 곱하면 1,073,741,824 이 수를 72,000,000으로 나누면 14.9130...이 되므로 약 14장이 저장될 수 있다고 생각한다.
8. 주기 = 9㎲, 주파수 = 약 111KHz, 듀티사이클= 약 67% 이다.
*주기는 쉽게 눈으로 찾을수 있고 주파수는 전파나 음파가 1초 동안에 진동하는 횟수. 즉 이렇게 구할 수 있다. f=1/T = 1000/9 약 999KHz 라고 할 수 있다. 듀티사이클은 주기 T에 대한 펄스폭의 비를 백분율로 정의 한 것이기 때문에 D= t/T = 6/9 약 67%라고 할 수 있다.
9. 주파수 = 4KHz, 듀티사이클 = 10%이다.
*8번의 풀이와 동일하게 주파수는 1000/250 = 4KHz이고 듀티사이클은 25/250을 백분율로 바꾸면 10%가 된다.
연습문제 2장
1. (1),(2) 전기적 신호로 의미를 전달할 수 있는 가장 간단한 방법이 2진수 이기 때문입니다. 하지만 0 또는 1을 한 개의 비트로 사용하는 2진수만을 사용하기엔 굉장히 긴 문장을 필요로 하기때문에 8진수와 16진수를 사용합니다.
*온라인 강의를 통해 학습한 기억을 갖고 답안을 작성하였습니다.
2. (1) 892 = 1101111100(2) = 1574(8) = 37C(16)
(2) 783.8125 = 1100001111.1101(2) = 1417.64(8) = 30F.D(16)
(3)48.3515625 = 110000.0101101(2) = 60.264(8) = 30.5A(16)
(4)0.0078125 = 0.0000001(2) = 0.004(8) = 0.02(16)
(5)52.7578125 = 110100.1100001(2) = 64.604(8) = 34.C2(16)
(6)47.9 =101111.1110011001100...(2) =57.7146...(8) = 2F.E66...(16)
*이 문제의 경우 모든 문항에 소수점 아래의 숫자가 존재해서 2진수로 변환하는데 상당히 오랜 시간이 걸렸다. 10진수를 2진수로 변환할 때 소수점 위의 수는 2로 계속 나누어 나머지를 계산하고 소수점 아래의 수는 2를 곱하여 1 이상이 될 때는 1을, 1 이하일 때는 0을 대입한다. 이 과정 이후 8진수와 16진수로 변환할 때는 소수점 첫 번째 자리부터 3개, 4개씩 끊어서 변환 해주면 된다. 개수가 모자랄 때는 오른쪽 끝에 0을 필요한 개수만큼 추가하면 된다.
(6)번 문항의 경우 2진수로 변환 시 무한히 1100이 반복된다. 이 점을 발견하고 답을 기록하였다. (공학용 계산기를 활용함)
5.
10진수 | 2진수 | 8진수 | 16진수 | |
10진수 | 225.225 | 11100001.001110011... | 341.163... | E1.39... |
2진수 | 215.75 | 11010111.11 | 327.6 | D7.C |
8진수 | 403.984375 | 110010011.111111 | 623.77 | 193.FC |
16진수 | 10949.8125 | 10101011000101.1101 | 25305.64 | 2AC5.D |
*위 문제는 차레로 10진수, 2진수, 8진수, 16진수를 각각 주어주고 이를 다른 진수로 바꾸어 보는 문제였다. 10진수, 8진수, 16진수를 2진수로 바꿀 수 있다면 크게 어려운 문제는 아니였다. 하지만 숫자가 큰 수도 존재하고 소수점 아래로 무한히 반복하는 수도 존재해 계산기와 직접계산을 모두 사용하여 문제를 해결하였다. 해결 방법은 2장 연습문제 2번과 동일하다.
7. (1)최솟값: 000(16) , 최댓값: FFF(16) (2) 4096개
*n개의 비트로는 2^n 가지의 정보 표현이 가능하다고 학습했다. 따라서 (2)번의 질문은 2^12 = 4096이 정답이고, 4096개의 정보 표현 중 가장 작은 값은 000, 가장 큰 값은 4095이다. 이를 16진법으로 변환하면 최솟값 : 000, 최댓값: FFF가 되는 것이다.
8. (1) 11010101 (2) 00101011 (3) 11100010 (4) 00100010 (5) 01111111 (6) 11010110
*8비트 2진수를 1의 보수로 먼저 바꿔야 하는데 0을 1로, 1을 0으로 바꿔준다. 그 후에 2의 보수로 다시 바꿔주는 과정이 필요한데 1을 더해주면 간단하게 2의 보수로 바꿀 수 있다.
9. 15비트의 정수표현 범위는 2^14-1 ~ -(2^14) 즉 16383 ~ -16384까지 이다.
*n개의 비트의 2진수 표현 범위는 2^(n-1)-1 ~ -2^(n-1)까지라고 온라인 강의를 통해 학습한 기억을 갖고 답안을 작성하였습니다.
10. (1) +18 00010010, 00010010 (2) +115 01110011, 01110011
(3) +79 01001111, 01001111 (4) -49 11001110, 11001111
(5) -3 11111100, 11111101 (6) -100 10011011, 10011100
*주어진 10진수의 수를 일단 2진법으로 바꾸어 표현한다. 그 후 10진수의 수가 음수일 경우 위에서 사용한 1의 보수로 바꾸는 방법, 2의 보수로 바꾸는 방법을 (10진수의 수가 음수일 경우에만) 사용해 준다.
13. 음수를 표현할 때, 2의 보수를 더 선호하는 이유를 웹서핑을 통해 찾아보았다.
*결론은 1의 보수를 사용하였을 때보다 문제가 덜 발생하였으며 문제 해결을 위해서 연산이 덜 필요하다는 것이었다.
14(mod2). (1) 10101010 = -86, (3) 01010101 = 85, (5) 0.10101 = 0.65625
(7) 7736(8) = 4062 (9) 3203(4) = 227 (11) A289B(12) = 212087
(13) 839C(16) = 33692
*(1)번의 문제는 2진법 음수를 10진법으로 바꾸는 문제였기에 2의 보수를 취한 후, 부호를 앞에 달아주었다.
(3)번의 문제는 2진번을 10진법으로 바꾸는 문제이기에 크게 힘들지 않았다.
(5)번의 문제는 소수점 아래의 2진법을 10진법으로 바꾸는 문제이기에 2^(-n)과 같이 각 자리에 맡는 수를 대입한 후 분수 형태로 나온 값을 계산하여 처리하였다.
(7)번의 문제는 8진법으로 표현된 수였으므로 각 자리에 맡게 8^n을 잘 곱하여 더하였다.
(9)번의 문제는 4진법으로 표현된 수였으므로 각 자리에 맡게 4^n을 잘 곱하여 더하였다.
(11)번의 문제는 12진법으로 A는 10, B는 11를 대입하고 각 자리에 맡게 12^n를 잘 곱하여 더하였다.
(13)번의 문제는 16진법으로 C에 12를 대입하고 각 자리에 맡게 16^n을 잘 곱하여 더하였다.
진법과 값의 수가 커짐에 따라 계산기를 활용하여 좀 더 빠르게 답을 구할 수 있었다.
15(mod2). (1)78 –34 = 01001110 + 11011110 = 00101100 = 44
(3) -56 –34 = 11001000 + 11011110 = 10100110 = -90
(5)98 – 59 = 01100010 + 11000101 = 00100111 = 39
*X+(-Y)꼴로 계산을 위해서 음수인 것들을 2의 보수로 처리하여 구한 후 2진법 덧셈을 하였다. 그 후 결과가 음수가 나오면 다시 2의 보수 처리한 후 음수 부호를 붙여주었다.