728x90
반응형

분류 전체보기 1420

컴퓨터의 수학적두뇌 ALU, (Arithmetic & Logic Unit)

https://www.youtube.com/watch?v=1I5ZMmrOfnA&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=6 영상의 요약 및 정리 ALU는 컴퓨터의 수학적인 두뇌를 의미한다 칩 안에 위치하는 것이다. 부울 논리회로를 이용해 칩을 만든다. 산술단위, 논리단위 산술단위는 2개의 숫자를 합하는 것을 가장 중요하게 생각하고 가장 잘한다. 2개의 2진수를 더하는 것이다. 그래서 2개의 입력과 1개의 결과 출력을 가진다. 2개의 숫자로 나올 수 있는 출력은 4가지 밖에 없다. 1+1는 0를 출력한다. 그 대신 carry bit가 올라간다. 우리는 그것을 위한 계산기를 가지고 반가산기라고 한다. 반가산기를 component로 생각할 수 있다. 그것보다 더 큰 연..

배수판별, 소수판별, 에라토스테네스의 체 C언어로 구현

1. 배수판별 프로그래밍 +++ q의 범위를 고치고 싶다면?? 어떠한 수라도 몫을 알고싶다면? 사실 q가 int로 되어있는 이상 q = m/n을 넣는다면 q는 몫이 됩니다. ㅎㅎ 저렇게 굳이 만들필요는 없지만, 정수의 성질을 알아보기 위한 프로그래밍입니다. 2. 소수 판별 프로그래밍 ++ 잘 돌아가네요. 저기 4.58 seconds가 얼마나 올라가는지 측정해보고 더 좋은 알고리즘을 만들 수도 있겠죠. 3. 에라토스테네스의 체 프로그래밍 소수를 걸러내는 방식입니다. 2가지를 생각해볼 수 있는데 첫 번째 방법은 2번의 소수판별을 메서드로 바꿔서 소수만 출력하게 하는 것. 두 번째 방법은 특정한 범위가 있다면 ex)50 까지의 소수 배열을 이용해서 확인하는 것. 첫 번째 방법도 범위를 입력받아서 작동하게해도 ..

자연수와 정수의 정의 그리고 활용

자연수라는 것은 무엇일까? 수건 5장을 보면 무엇이 생각날까? 아마도 숫자 5가 생각 날것이다. 5는 수건 5개에 추상화된 개념을 생각해낸 것이다. 그렇다면 5는 무엇일까? 4 보다 하나 더 큰 수, 그렇다면 4는? 그렇게 내려가서 1은? 이러한 접근을 공리적인 접근 방식이라고 하고 공리적인 방법은 기본 항과 공리들을 가지고 정의한다. *공리(axiom): 증명없이 참이라고 받아들이는 명제 자연수에 대한 공리 1. 1은 자연수 2. 각각 자연수는 오직 하나의 successor를 가진다 3. 1은 어떠한 자연수의 successor가 아니다 4. 만약 succ(x) = succ(y) 이면 x=y이다. 5. 만약 M이 다음을 만족하는 자연수들의 부분집합이면, M은 모든 자연수들의 집합이다. 1) 1는 M의 원..

이산수학, 왜 배워야 하는가?

대학교에 들어오면 공대라면 대부분 들을 법한 수업 수학, 수학에는 선형대수, 미적분학, 이산수학, 공학수학, 등 무지 많다. 그 중에 프로그래밍을 한다면 이산수학을 배워야 한다고 한다. 왜 그럴까? 우선 흔히 하는 말이 컴퓨터는 수학의 확장이기에 수학을 배워야 한다고 한다. 그렇다면 수학 중 왜 이산수학일까? 프로그래밍은 논리의 연속이라고 한다. 즉 이산수학을 배우는 이유는 컴퓨터에 필요한 논리적사고, 이산수학적인 사고와 내용을 익히기 위함이다. 그렇다면 이산수학을 배울 때 어떻게 배워야 프로그래밍과 함께 배울 수 있을까? 내가 아는 논리를, 알고리즘을 프로그래밍하면서 배울 수 있겠다. 이산수학의 응용 분야로는 프로그래밍 언어, 알고리즘, 자료구조, 컴파일러 디자인, 오토마타 이론, 데이터베이스 설계 및..

컴퓨터 속의 이진수 (binary)

https://www.youtube.com/watch?v=1GSjbWt0c9M&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=5 영상의 요약 및 정리 이진수에 관해서 컴퓨터가 데이터를 읽고 저장하는 방법 트랜지스터로 on, off ,0,1로 이용하는 것을 알았는데 그것을 어떻게 이용할 것이냐? 2가지 이상을 표현하고 싶다면 이진수의 숫자를 더하기만 하면 된다. 10110처럼 10진법으로 24를 뜻한다. 어떻게 계산하는지는 다 알 것이라고 생각한다. 컴퓨터는 대부분 8bit 로 시작했다 즉 256가지의 표현방식이 있었다. 8 -bit = 1B0yte가 되었다. B와 b를 구분하는 것은 Byte와 bit를 구분하게 되었다. 1KB = 1000Byte?? 사실 1024Byt..

부울 대수학과 논리 회로

https://www.youtube.com/watch?v=gI-qXk7XojA&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=4 영상 정리 및 요약 컴퓨터 10진수가 어떻게 전자식으로 표현이 되었나 2가지 전기적 상태만으로도 표현이 가능 binary 2가지로는 많은일을 못할 것 같지만 true or false로 구분가능 off false, on true , 0,1 전류의 흐름으로 표현가능 전류의 세기로 0,1,을 넘어선 구분을 하려하지만 중간상태에 있는 경우 구별하기 힘듬. 게다가, 잡음이 들어갈 수 있다. 이진수를 사용하는 이유는 이미 수학적으로 연구된 분야가 있었기 때문 Boolean algebra , 불 대수학 논리 방정식을 통해 공식적으로, 체계적으로 정리됨. ..

초창기 컴퓨터의 구성과 분석, Early Computing

https://www.youtube.com/watch?v=O5nskjZ_GoI&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=2 영상 요약 및 정리 초창기의 컴퓨터 컴퓨터에 의해 모든 것이 이뤄지는 현대시대 통신기술, 가상현실, 등등 수많은 트랜지스터가 컴퓨터에 들어있다. 전자 컴퓨터는 비교적 생소한 단어. 최초의 계산기는 주판. 기원전 2500년 전의 주판은 하드디스크에 데이터를 저장하듯이 값을 저장한다. 시계도 컴퓨터와 비슷하다. 어려운 계산을 쉽게 만드는 것. 사람들의 노동력을 줄여주는 것, 계산기 분석엔진이라는 것은 계산장치와 달랐는데 하나의 계산에 국한된 것이 아닌 많은 용도로 쓰일 수 있었다. 분석엔진은 완성되지 못했지만 그 용도와 목적은 많은 사람들에게 영..

컴퓨터의 전자화, 발전; Electroninc computers

https://www.youtube.com/watch?v=LN0ucKNX0hc&list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&index=3 영상의 정리 및 요약 컴퓨터의 발전 컴퓨터의 발전은 인구와 생산규모가 커지면서 같이 발전했다. 복잡성, 관료주의는 데이터의 폭발적 증가를 가져왔고 데이터의 증가는 컴퓨터의 발전을 필요로 했다. 컴퓨터의 크기도 엄청나게 커졌고 복잡해졌다. 2차세계대전 중 컴퓨터가 발명되었는데 엄청난 크기를 자랑했다. 계전기를 이용해서 IBM에서 만들었는데, 계전기는 전류의 흐름을 조종했다. 계전기로는 1초에 50번정도 운동을 할 수 있지만 엄청나고 복잡한 문제를 해결하기엔 아직 무리가 있는 정도였다. 또한 계전기의 한계는 마모라는 점이 있었는데 이는 컴퓨터의 ..

C언어 예제 18 "Dynamic Array in C"[HackerRank]

https://www.hackerrank.com/challenges/dynamic-array-in-c/problem Dynamic Array in C | HackerRank www.hackerrank.com 문제가 너무길다. 문제가 뭔지 몰라서 못푸는 경우가 생길지경이다. 책을 관리하는 시스템인가보다. 입력받는 숫자에 따라 기능이 달라지는데 1 은 가상의 공간에 책을 넣는 함수 2 는 그 가상의 공간에 있는 책의 페이지를 출력하는 함수 3 그 가상의 공간에 있는 책의 수 뭐 책의 정보를 관리하는 프로그램인가보다. 문제에서는 1번의 경우에만 신경쓰면 되겠다. 배경지식 주어진 코드에서는 total_number_of_books 와 total_number_of_pages를 동적메모리에 반환하는 함수가 있는데 그..

MIPS Addressing for 32-Bit [컴퓨터구조]

프로그래밍을 하다보면 상수가 쓰인다. 하지만 상수의 크기가 대부분 작기 때문에 고려하지 않았지만 16-bit면 충분히 표현될 줄 알았다. 32 - bit 상수도 필요하기 마련이다. 하지만 32 bit의 수를 어떻게 만들까?? 그 때 사용하는 명령어가 lui이다. lui, Load Upper immediate 즉, 상수값을 target register(rt)에 상위 16비트, 왼쪽에 복사하는 것이다. 그리고 나머지 하위 16bit는 0으로 만든다. 그렇다면 끝?? 0으로만 채워넣는 것이 아니라. or 명령어의 immedaite 타입으로 2304에 대해서 1을 채워넣는 것이다. 즉, ori 로 61^16 + 2304의 충분한 큰 값을 만들었다. **이렇게 하는 이유는32-bit의 메모리를 저장을 불러오는 것..

728x90
반응형