C언어 C++ Programming

[C언어/C++] ASCII 코드란? 정수에서 변환해보기 예제(static_cast)

끄적끄적아무거나 2023. 8. 4. 08:41
반응형

 

목차

     

     

     

    [C언어/C++] ASCII 코드란?

     

    https://en.wikipedia.org/wiki/ASCII

     

    우선 ASCII 테이블 값은 위 링크에서 쉽게 확인할 수 있습니다. 

     

    ASCII는 "American Standard Code for Information Interchange"의 약자로, 컴퓨터에서 텍스트를 표현하는 데 사용되는 일종의 문자 인코딩 체계입니다. ASCII 코드는 문자와 숫자, 특수 문자 등을 컴퓨터가 이해할 수 있는 숫자로 매핑해주는 방법을 제공합니다.

     

    예를 들어, 영어 알파벳 대문자 'A'를 ASCII 코드로 표현하면 65이고, 소문자 'a'는 97입니다. 숫자 0부터 9까지는 각각 48부터 57까지의 ASCII 코드를 갖습니다.

     

    ASCII 코드는 7비트로 이루어져 있으며, 확장 ASCII는 8비트로 이루어집니다. 예를 들어, ASCII 코드로 표현된 "A"는 01000001(2진수)로, "a"는 01100001(2진수)로 나타낼 수 있습니다.

     

    이를 실제로 텍스트로 표현하면 다음과 같습니다.

     

    문자: A
    ASCII 코드: 65
    2진수: 01000001
    
    문자: a
    ASCII 코드: 97
    2진수: 01100001

     

    컴퓨터에서 문자를 저장하고 처리할 때, ASCII 코드를 사용하여 문자를 숫자로 변환하고 다시 숫자를 문자로 변환하는 방식을 활용합니다. 이러한 기본적인 문자 인코딩 방식으로 인해 컴퓨터에서 텍스트를 다룰 수 있습니다.

     

     

     

     

     

    [C언어/C++] 정수에서 변환해보기 예제(static_cast)

     

    예제 코드>>

    #include <iostream>
    
    int main() {
        std::cout << char(65) << std::endl;
        std::cout << static_cast<char>(65) << std::endl;
    
        return 0;
    }

     

     

    결과>>

    A
    A
    
    C:\Users\forgo\source\repos\Project7\x64\Debug\Project7.exe (process 19056) exited with code 0.
    Press any key to close this window . . .

     

     

     

    주석>>

    두 줄의 코드는 C++에서 정수 65를 출력하는 방법을 보여줍니다. 하지만 두 줄은 약간 다른 의미를 가지고 있습니다.

     

    std::cout << int(65) << std::endl;

    이 줄은 65를 int로 명시적으로 형변환하고 출력하는 방법입니다. C++에서는 숫자 리터럴을 디폴트로 int로 해석하기 때문에 사실상 형변환이 필요하지 않습니다. 따라서, 이 코드는 그냥 std::cout << 65 << std::endl;과 같은 결과를 출력합니다.

     

    std::cout << static_cast<int>(65) << std::endl;

    이 줄은 C++에서 제공하는 static_cast를 사용하여 65를 명시적으로 int로 형변환하고 출력하는 방법입니다. 마찬가지로, static_cast를 사용하여 기본 숫자 리터럴을 형변환하는 것은 불필요한 작업입니다. 따라서 이 코드도 std::cout << 65 << std::endl;과 같은 결과를 출력합니다.

     

    출력 결과 자체는 두 방법 모두 동일합니다. 따라서, 두 방법의 차이는 성능적인 측면에서 무시할 만큼 작습니다. 컴파일러는 두 코드를 같은 방식으로 최적화할 수 있기 때문입니다.

     

    어떤 방법이 더 좋은지 선택하는 것은 주관적인 문제이며, 개인적인 취향에 따라 다를 수 있습니다. 그러나 C++ 컨벤션과 가독성을 고려한다면, 첫 번째 방법이 더 권장됩니다. 왜냐하면, 불필요한 형변환을 피하고 코드를 간결하게 유지할 수 있기 때문입니다. 따라서 다음과 같이 사용하는 것이 더 좋을 것입니다:

     

    반응형