Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 구현하는 ASCII 조회 테이블 프로그램

```html

이번 튜토리얼에서는 ASCII 조회 테이블(Lookup Table)을 구현하는 C++ 프로그램을 다뤄보겠습니다.

ASCII 조회 테이블은 주어진 문자에 대한 8진수, 10진수, 16진수, HTML 값을 표 형태로 정리해 보여주는 자료입니다. 이를 활용하면 각 문자가 컴퓨터 내부에서 어떤 코드 값으로 저장되고 해석되는지 한눈에 파악할 수 있습니다.

조회 테이블에서 다루는 문자에는 알파벳 대소문자, 숫자, 공백 등의 구분자, 그리고 각종 특수 기호가 모두 포함됩니다.

C++ 구현 예제

아래 예제는 문자 하나를 입력받아 해당 ASCII 코드(10진수)를 구한 뒤, 이를 8진수·16진수·HTML 엔티티 형태로 변환해 화면에 출력합니다.

#include <iostream>
#include <string>
using namespace std;

// 10진수를 8진수로 변환
int Octal(int decimal){
    int octal = 0;
    string temp = "";
    while (decimal > 0) {
        int remainder = decimal % 8;
        temp = to_string(remainder) + temp;
        decimal /= 8;
    }
    for (int i = 0; i < temp.length(); i++)
        octal = (octal * 10) + (temp[i] - '0');
    return octal;
}

// 10진수를 16진수로 변환
string Hexadecimal(int decimal){
    string hex = "";
    while (decimal > 0) {
        int remainder = decimal % 16;
        if (remainder >= 0 && remainder <= 9)
            hex = to_string(remainder) + hex;
        else
            hex = (char)('A' + remainder % 10) + hex;
        decimal /= 16;
    }
    return hex;
}

// 10진수를 HTML 엔티티로 변환
string HTML(int decimal){
    string html = to_string(decimal);
    html = "&#" + html + ";";
    return html;
}

// ASCII 조회 테이블 계산
void ASCIIlookuptable(char ch){
    int decimal = ch;
    cout << "8진수 값: " << Octal(decimal) << endl;
    cout << "10진수 값: " << decimal << endl;
    cout << "16진수 값: " << Hexadecimal(decimal) << endl;
    cout << "HTML 값: " << HTML(decimal);
}

int main(){
    char ch = 'a';
    ASCIIlookuptable(ch);
    return 0;
}

코드 동작 원리

  • Octal() – 10진수 값을 8로 반복해서 나눈 나머지를 조합해 8진수를 만듭니다.
  • Hexadecimal() – 10진수 값을 16으로 나눈 나머지를 이용하며, 10 이상의 나머지는 A~F 문자로 변환합니다.
  • HTML() – 10진수 값을 &#코드; 형태의 HTML 엔티티로 감싸 반환합니다.
  • ASCIIlookuptable() – 위 함수들을 호출해 문자의 모든 진법 표기를 한 번에 출력합니다.

실행 결과

8진수 값: 141
10진수 값: 97
16진수 값: 61
HTML 값: &#97;

예제에서 사용한 문자 'a'의 ASCII 코드는 10진수로 97이며, 이는 8진수 141, 16진수 61, HTML 엔티티 &#97;과 동일한 값을 나타냅니다.