33개 출력불가능 제어문자 + 95개 출력가능 문자 = 128개 (000~127)
제어문자들은 역사적 이유로 남아있으며 대부분 사용되지 않음.
출력가능 문자
52개 영문알파벳 + 10개숫자(0~9) + 32개 특수문자 + 하나의 공백문자
자주 쓰이는 것으로는
0 * 30 = 0
0 * 40 = A
0 * 61 = a
대문자와 소문자는 다른것
아스키 코드에 숫자도 존재하는데 문자와 숫자 혼합된 곳에 사용 (ex 주소)
영어권의 언어는 표현가능하지만 모음과 자음이 있는 한글(2바이트) 등의 언어들은 1바이트인 아스키코드로 활용불가
나라마다 같은 코드값에 다른 글자를 쓰는 방식으로 원활한 자료교환 불가
-> 이를 해결하기 위해 현대는 유니코드를 사용함.
전세계 모든 문자를 컴퓨터에서 다룰 수 있게 설계된 산업표준
-컴퓨터는 전기를 활용하여 수많은 트렌지스터를 ON/OFF하는 행위를 반복한다. 데이터가 있을 때 전압이 발생한 곳이 1, 발생하지 않은 곳을 0으로 처리
-오류의 최소화와 효율성이 목적
-2진수는 상당히 많은 공간을 차지하므로 가독성을 해칠수 있어 8진수와 16진수가 등장했는데 이중 16진수는
용어정리
(문자) 인코딩
아날로그, 복잡한 신호를 0과 1의 디지털신호(2진수)로 변환하는것
대부분의 인코딩이 아스키에 기반을 두고 있음.
4비트 = 1니블(nibble)
8비트 = 2니블 = 1바이트(컴퓨터가 데이터를 저장하는 최소 단위)
Baekjoon에서 문제풀이
오늘 공부한 내용을 참고해 막혀있던
1) 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다. 첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
2) 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. 각 테스트 케이스마다 A+B를 출력한다. (0 < A, B < 10)
2문제를 시도했는데 아직 1번문제는 시간초과와 2번문제는 런타임오류 나는것에서 벗어나지 못함. 될거 같아서 이렇게 저렇게 해보았는데 아직 답을 찾지 못함.
공부했던 내용과 그동안 풀었던 문제 모두 돌아보며 다시 풀어보겠음.
하루 돌아보며
ASCII 코드에 대해 완전히 이해한건 아니지만 원리와 유니코드가 현대에 쓰이게 된 과정 등 큰 맥락에서는 이해함.
최근 2일 가능했던 시간에 집중하지 못하고 당일에 끝내지 않고 넘겨버림. 다시는 이런일이 없도록 노력해야 할것
ASCII에 대해 조금더 심화적인 내용 공부해보겠음.
만족도 : ★☆☆☆☆
공부 출처
BaekJoon
유튜브 - 시골사는개발자
위키백과
위의 내용은 공부중 본인이 이해한 내용으로 몇몇 틀린 내용이 있을 수 있습니다.
회독 혹은 공부간 틀린 내용 발견시 수정하겠습니다