일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- CS
- JP Study
- Recommender system
- 퓨처셀프
- 미래혁신대전
- Til
- MVT
- SQL
- Programmers
- 혼자 공부하는 SQL
- 엘런 튜링
- 멀티스레딩
- FastAPI
- WIL
- 한 권으로 읽는 컴퓨터 구조와 프로그래밍
- PCA
- 문제풀이
- Stored Procedure
- mysql
- 프로그래머스
- 다시 왔다!
- Django
- 백준
- 2023
- 1463
- stored function
- 덴드로그램
- computer science
- 컴퓨터 과학이 여는 세계
- 선형대수
- Today
- Total
Growth Hoon
20230811_TIL_논리 연산/미니강의 자료준비 본문
오늘은 저번주에 못 풀었던 문제에서 논리 연산으로 푼 문제에 대해서 찾고 공부하였다.
매주 토요일마다 스터디에서 미니 강의를 각각 진행한다 하여 해당 주제로 준비했다.
오늘의 한줄 TIL : 논리 연산에 대해서 알아보았다 !
논리 연산에 대해서 알아보기 전에 나는 집에 있는 CS책을 먼저 펼쳐보았다.
내 기억상으로 첫 부분쯤에 논리 연산이 나왔기 때문이다.
먼저 해당 책에서 언어에 대한 이야기를 했다.
해당 책에서 "모든 언어의 뜻은 기호의 집합으로 인코딩(encoding) 된다." 라고 설명한다.
여기서 접두사 en- 의 뜻은 make 와 같은 ~만들다 라는 의미라고 한다.
code는 규칙이라는 의미로 en + code는 규칙을 만든다는 의미이다.
그렇다면 컴퓨터의 언어는 무엇일까?
컴퓨터에서는 비트(bit)를 사용한다고 한다.
bit는 Binary + Digit 의 합성어로 만들어졌다고 한다. 아마 2진수의 방법으로 10진수(digit)을 표현한다는 의미인 것 같다.
그래서 컴퓨터의 언어인 비트는 0과 1로 이루어져 있다고 한다.
이 다음으로 논리 연산에 대한 설명을 해주는데, 컴퓨터의 언어가 비트라는 것을 알려주고 논리 연산을 설명해주는 이유에 대해서 생각을 해보니 의사소통을 하는데 있어 가장 쉬운 것이 예 / 아니오 이기 때문이지 않았을까 싶다..
컴퓨터의 논리 연산
가장 먼저 소개해준 논리 연산의 방법으로 불리언 대수를 설명해줬다.
불리언 대수의 연산자는 AND, OR, NOT, XOR이 있다.
Python 코드를 작성하는데 많이 보이던 연산이라 생각하니 이해하기 쉬웠다 ( 파이썬은 아니지만 ㅎ..)
다음으로 설명해준 법칙이 하나 있는데, 바로 드모르간의 법칙이다.
해당 책에서는 간단하게 설명해준 것 같아서 고마웠다 ㅎㅎ..
원래는 더 뭔가 있었을 것 같지만 한줄로 요약하자면,
충분한 NOT을 사용하여 AND 논리 연산과 결합하면 OR 연산이 된다. 이다.
여기서 나의 궁극적인 목적이 숫자(10진수)간의 논리 연산이어서 자세한 내용은 알아보지 않고,
비트로 숫자를 표현하는 방법으로 넘어갔다.
컴퓨터는 숫자(10진수)를 어떻게 표현 할까?
컴퓨터의 언어는 0과 1로 이루어진 비트라고 위에서 설명을 했다.
그렇다 컴퓨터는 숫자를 2진수로 표현한다.
책은 논리 연산과 컴퓨터가 숫자를 표현하는 방법까지만 읽었다.
이후 다시 못풀었던 문제와 논리 연산으로 해결한 문제를 보았다.
해당 풀이를 내가 이해하기 쉽게 PPT를 만들었으며, 해당 내용으로 미니 강의를 준비하였다.
문제를 이해하는데 있어 필요했던 내용이 더 있었는데, 바로 Python에서 논리 연산을 어떻게 진행하는가?
그리고 숫자간의 논리 연산은 어떻게 진행하는가? 였다.
해당 문제는 코드잇의 질문에서 파이썬 공식 문서를 보면 나온다고 하여 해결하였다.
파이썬 공식 문서에서 & 연산은 각 Bit의 논리 연산이며, and가 논리 연산 이라고 설명해주고 있었다.
비트연산이라는 것은 4를 2진수로 표현 하면 [1 0 0] 3을 2진수로 표현 하면 [0 1 1] 인데 각 자리수마다의 and 연산을 하는 것을 말한다. 즉 4&3은 [0 0 0]으로 0이 출력된다.
다음으로 파이썬에서 and 연산이 신기하였는데
x and y 라는 논리 연산에서 x의 값을 먼저 구하고 x의 참 거짓 유무로 출력 값이 달라진다.
x가 True면 y값이 출력되고, x가 False면 x값이 출력된다.
이렇게 논리 연산에 대해서 알아보았고, 못 풀었던 문제에서 논리 연산 풀이 방법을 이해했다 !
오늘의 한줄평
최적화를 하는데 있어서 논리 연산이 필요할 수 있겠다는 생각이 들었다.
reference site
1. 불리언 연산 이미지 / 비트 표현 이미지
3. 프로그래머스 문제
4. 논리 연산 풀이 블로그
5. 읽은 책 : 한권으로 읽는 컴퓨터 구조와 프로그래밍 ( yes24 )
'TIL_Today I Learned' 카테고리의 다른 글
20230813_TIL_파이콘 2일차 (0) | 2023.08.13 |
---|---|
20230812_TIL_파이콘/스터디 (0) | 2023.08.12 |
20230810_TIL_프로그래머스/알고리즘 (0) | 2023.08.10 |
20230809_TIL_통계 공분산/상관계수/자유도 개념 (2) | 2023.08.09 |
20230808_TIL_동적 계획법(Dynamic Programming) (0) | 2023.08.08 |