C 이론(8)

Hi Beck·2023년 5월 2일

TIL-Language(C & C++)

목록 보기
10/34

강의복습

1.아스키코드는 8비트를 사용하여 영어 알파벳을 표현한다.
즉 1바이트인 char형을 사용하여 메모리를 할당받는다.

아스키코드를 외울 필욘 없지만,문자 A를 %d로 해서 정수형을 찍어보면 65라는 숫자가 나온다.

char형의 변수가 문자를 저장하는데 있어 변수에 문자를 저장하려면 아스키코드 값을 대입시켜야된다.(근데 우린 이렇게 실제로 안쓴다.그냥 이렇게도 할 수 있다는걸 보여줄뿐)

char code1 = 'A'; // 문자 상수로 초기화
char code2 = 65; // 아스키 코드로 초기화

printf("문자 상수 초기화 = %c\n", code1);
printf("아스키 코드 초기화 = %c\n", code2);

이걸 출력하면 둘다 A가 나오는데 우린 char code2 = 65; 이렇게 안쓰고
char code1 = 'A'; 이렇게 쓴다.

보통 구글링해서 찾음.

아스키코드로 입력하는 경우가 존재하긴하는데 알파벳를 for문으로 반복해서 쓸 때,숫자 차이를 이용해서 갯수 구할때 쓰긴함.
예로 들어 'z'-'a'+1;이 알파벳 갯수 구하는 식임.

숫자는 진짜 쓸 일이 없음.굳이 식에다가 넣어서 쓰진 x

  1. 1과 '1'은 다르다!!!
    1은 정수 상수 '1'은 문자상수(아스키코드 49) -> 숫자1과 아스키코드1이 대응되어있지가않다는 소리

3.제어문자 및 중요한 몇 개만 보기
제어문자 = 인쇄 목적이 아니라 제어 목적으로 사용되는 문자들
(줄바꿈 문자 ,탭 문자 ,벨소림 문자, 백스페이스 문자 등등)

제어문자는 두가지 형식으로 나타내진다.
아스키코드에 대응되어있는 제어문자를 쓰기 or 이스케이프 시퀀스 사용
보통 이스케이프 시퀀스를 사용한다.

대표적인 이스케이프 시퀀스

  • 수평탭(horizontal tab) : \t로 표기(값은 9)
    기능 = 커서의 위치를 현재 라인에서 설정된 다음 탭 위치
    =우리가 쓰는 tab과 같다.즉 띄어쓰기 4칸과 같음
    적용예시 : 프린트에프 함수에 넣으면 값이 4칸띄고 출력됨

  • 줄바꿈(newline) : \n로 표기(값은 10)
    기능 = 커서를 다음 라인의 시작 위치로 옮긴다.

  • 큰따옴표 : \“ 로 표기(값은 34)
    기능 = 우리가 보통 프린트에프 쓸 때, 큰따옴표 안에 것을 출력하잖아 그때 큰따옴표 자체를 출력하고 싶으면 이걸 쓰는 것임.

  • 작은따옴표 \‘ 로 표기(값은 39)

    4.고정소수점 방식
    비트가 있으면, 정수 부분에 일부 비트 소수 부분에 일부 비트를 나타내는 방식
    ex)우리가 흔히 쓰는 방식

    5.부동소수점 방식
    이 수가 10의 마이너스 몇 승이냐에 초점을 맞춘 방식

    이것만 기억하면 됨 : C언어에서는 부동소수점을 쓴다.
    (이유: 보다 더 숫자를 정밀하게 더 넓은 범위로 쓸 수 있어서)

    이 부동소수점을 이용해 실수를 표기하는데
    일반적 실수 표기법
    3.141592(double형)
    3.141592F(float형)

    지수 표기법
    1.23456e4 = 12345.6
    1.23456e-3 = 0.0012345

    이런식으로 되어있는데 쓰는 경우는 극히 적으니 스킵!

    부동소수점 오버플로우
    int의 오버플로우와 같긴한데,넘어가는 숫자를 쓰면 오버플로우가 난다는 뜻
    실제로 소수쓸 땐 그냥 쓰지 막 예제처럼 e같은거 넣는 부동소수점 형태론 쓰진않음
    목적이 0이 너무 많으니깐 줄여서 깔끔하게 쓰자는 취지로 만든게 부동소수점인데 실제 론 굳이 이걸 안씀 더구나 가독성도 안좋음

profile
Emotional realizer

0개의 댓글