SOLID BASIC
[디지털공학] 부울대수(불대수)란? | Boolean algebra | 쌍대 , 공리, 공준 | 부울 대수의 주요법칙
이 글은 전공 과목인 디지털 공학 수업을 복습하며 작성하는 글이다. 부울대수 (Boolean Algebra) 대수학 (Algebra)이란 일련의 공리들을 만족하는 수학적 구조들의 일반적인 성질을 연구하는 수학의 한 분야이다. 그 중, 부울대수 (Boolean Algebra)는 참(True), 거짓(False)라는 논리로만 이루어진 대수학이라 할 수 있다. 다들 이미 알다시피 컴퓨터는 0,1 이라는 두개의 숫자만으로 모든 것을 표현한다. True, False라는 논리를 0과 1이라는 두 숫자로 나타낼 수 있기 때문에 부울대수가 컴퓨팅의 기반이 되는 것이다. 논리연산자 - NOT, AND, OR 부울대수를 연산하는 연산자에는 3가지 - NOT, AND, OR - 가 있다. 하나 하나 살펴보도록 하자. NOT..
[디지털 공학] BCD 코드 | Gray 코드 | 아스키코드 | 여러가지 바이너리 코드
이 글은 전공과목인 디지털 공학을 복습하며 작성한 글이다. BCD code 1. BCD code((Binary coded decimal) : 이진수 네 자리를 묶어 십진수 한 자리로 사용하는 기수법이다. BCD code가 필요한 이유 : 컴퓨터는 모든 연산을 2진법을 사용하지만 사람은 10진법에 익숙해져있다. 따라서 2진수를 10진수로, 10진수를 2진수로 바꿔주어야하기 때문에 BCD code가 필요하다. BCD code - 10진수의 각각의 자리를 2진수로 바꿔주면 BCD code가 완성된다. 몇가지 예를 더 들어보면 ex1) (10)10=(0001 0000)BCD ex2) (56)10=(0101 0110)BCD 2. BCD 덧셈 BCD코드를 사용하면 1010~1111 6개의 숫자가 남는다. 그래서 2..
[디지털 공학] 2진수의 부호표기법 | signed number vs unsigned number | 덧셈 보충
이 글은 전공과목인 디지털 공학을 복습하며 작성한 글이다. signed number vs unsigned number 1. Unsigned number vs Signed number unsigned number : 음수가 아닌 수 , 즉 양수와 영을 말한다. signed number : 양수, 음수, 영이 포함된다. unsigned number를 사용하면 양수만을 사용할 수 있기 때문에 시간과 같은 양의 수 밖에 없는 자료를 한정된 메모리에서 더 많이 표현할 수 있다. 이 글에서는 unsigned보다는 signed를 알아볼 것이다. 2. Signed number signed number를 표기하는 3가지 방법이 있다. signed-magnitude representation (부호크기방식) signed-..
[디지털 공학] 보수 | 2진수의 산술 연산 | 2진수의 덧셈과 뺄셈 방법
전공과목인 디지털 공학 수업내용을 복습하며 작성하는 글이다. 나는 작년에 컴퓨터 구조를 수강했기에 컴퓨터 공학의 선수과목인 디지털 공학을 듣는 것은 수월했다. 작년에 이해하려 무수한 노력을 들인 2진수와 카르노맵...등등 이번 학기 동안 머릿속에 확실하게 각인시킨다고 생각하면서 공부해야겠다. 2진수의 덧셈 2진수의 덧셈과 carry 2진수의 덧셈은 10진수의 덧셈과 비슷하다. 10진수의 덧셈의 경우 2+9=11 에서1을 올려주둣 2진수의 덧셈에서 1+1=10 에서 1을 올려준다. 여기서 올라가는 수를 carry라고 한다. 보수(Complement) 2진수의 뺄셈을 이해하기 위해서는 먼저 보수의 개념을 알아야한다. r진법의 보수는 2가지가 존재한다. - Diminished Radix Complement :..
[디지털 공학] 수의 표현 | 진수의 변환
수의 표현 N진수의 표현 ex1) 2진수의 표현 : (101.1)2 ex2) 10진수의 표현: (12.8)10 이러한 표기를 사용하는 이유는 101.1이 10진법으로 표현된 것인지 2진법으로 표현된 것인지 혼돈을 막기 위함이다. 위의 표기법외에 여러 표기법이 있으므로 자신이 공부하는 책의 표기법을 따라가면 된다. 앞으로 혼동될 상황이 생기면 위의 표기법을 사용하겠다. 진법변환 (가중치를 이용한 방법) 아마 나눗셈을 이용하는 방법은 분명 어디선가 한번씩은 들어봤을 것이다. 필자는 나눗셈으로 나머지를 구하는 방법보다 더 빠르고 직관적인 가중치를 이용하는 방법을 소개할 것이다. 밑의 방법은 10진수를 거쳐가는 방법이다. 매우 편리하니 알아두자 1. n진수에서 10진수로 변환하기 (a1a0.a-1)=a1n1+a..
[디지털 공학] 디지털과 아날로그 | digit, bit, byte
이 글은 전공과목인 디지털 공학을 복습하며 작성한 글이다. 디지털과 아날로그 디지털과 아날로그의 개념에 대해 알아보자. 디지털 신호: 불연속적인 신호로 현재 사용되는 거의 모든 전자기기가 디지털 신호를 사용한다. 아날로그 신호: 연속적인 신호 디지털 신호의 장점 - 잡음에 강하며, 원음의 손실이 적다. - 정보 단위의 저장과 용량이 명확하다. - 아날로그 신호보다 전송에 유리하다. - 신호의 손실 없이 복사가 가능하다. 디지털 신호의 단점 - 아날로그 신호로 완벽하게 복구가 불가능하다. 디지털 시스템은 정보를 저장, 처리하는 능력이 아날로그보다 월등히 뛰어나므로 현재는 극단적인 상황을 제외하고 거의 모든 전자기기는 디지털 시스템을 사용한다. Digital Design에서는 컴퓨터가 알아들을 수 있는 디지..
[멋쟁이 사자처럼] 멋쟁이 사자처럼 11기 서류 합격 후기| 자기소개서 | 포트폴리오 제출 | 서류 작성 과정을 회고해보자
일 년 전부터 가입하고 싶은 동아리가 있었다. 바로 '멋쟁이 사자처럼' 매우 유명한 IT 동아리이다. 프로그래밍 교육 세션이 제공된다는 점에서 타 동아리와 차별성이 있는데, 이 부분이 마음에 들었다. 멋쟁이 사자처럼에 대해 좀 더 알아보자면 멋쟁이 사자처럼 동아리는 테크 기반의 아이디어 실현을 위한 전국 최대 규모의 대학 연합 창업 동아리이다. 멋쟁이 사자처럼 대학 11기에는 전국의 61개 대학이 참여하며, 500여 명의 운영진이 운영을 한다. 아래는 멋쟁이 사자처럼의 주요 커리큘럼이다! 나는 컴퓨터 공학 복수전공생으로서 교내에서의 커뮤니티가 부족했고, CS 전공에대한 이론지식만 있었지 무언가를 실제로 개발해보거나 프로젝트를 진행해본 경험은 전무했다. 내게는 나와 비슷한 관심사를 가진 그리고 진로에 놓인..
[ T프렌즈 ] 연간 최우수팀 | T프렌즈 5기 회고록 | 스윗티즈 2조
이제서야 작성하는 SK 텔레콤 대외활동, T프렌즈 회고록! 작년 일 년은 T프렌즈 그 자체라고 말해도 과언이 아닐 것 같다. 그만큼 애정을 다했고, 정말 좋은 팀원들 만나서 행복했다. 아마 평~생 볼 것 같다 ( 나만 그렇게 생각하는 거 아니지? ) 그럼 T프렌즈 5기 활동을 회고해보자. 노션으로 기록한 T 프렌즈 활동들 시간이 지나도 한 눈에 어떤 활동을 했는지 기억나도록 노션에 활동들을 기록해두었다. 나는 내가 했던 모든 활동들을 개인 노션 페이지에 기록해두는 편이다. 지금의 내가 불편하더라도 미래의 내가 아주 고마워할 것이라 확신함! 무튼, 이 노션 페이지로 이 활동들을 다 담아낼 수는 없다. 정말 너무너무 따듯한 활동이었음! 내 인생 대외활동인듯 사실 나는 진로가 마케팅과는 거리가 먼데, 어쩌다보..
[JAVA] 자바의 정석 연습문제 6장 객체지향프로그래밍 [6-23]
[6-23] 다음과 같이 정의된 메서드를 작성하고 테스트하시오. 메서드명 : max 기 능: 주어진 형 배열의 값 중에서 제일 큰 값을 반환한다 . 만일 주어진 배열이 null이거나 크기가 0인 경우, -999999 를 반환한다. 반환타입 : int 매개변수 int[] arr - 최대값을 구할 배열 public class No1 { public static int max (int[] arr) { if (arr == null || arr.length == 0) { return -999999; } int max = arr[0]; for (int i = 0; i < arr.length; i++) { if (max < arr[i]) { max = arr[i]; } } return max; } public sta..
[JAVA] 자바의 정석 연습문제 [6-6, 6-7] static 메서드와 인스턴스 메서드의 차이
[6-7] 문제 [6-6]에서 작성한 클래스 메서드 getDistance()를 MyPoint 클래스의 인스턴스 메서드로 정의하시오. class MyPoint { int x; int y; MyPoint(int x, int y) { this.x = x; this.y = y; } double getDistance(int x1, int y1) { return Math.sqrt ((x1 - x) * (x1-x) + (y1 - y) * (y1 - y)); } } public class No1 { public static void main(String[] args) { MyPoint p = new MyPoint(1,1) } } 이전 문제의 static 메서드를 인스턴스 메서드로 변경하는 문제였다. static 메서드..