• 티스토리 홈
  • 프로필사진
    유니얼
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
유니얼
  • 프로필사진
    유니얼
    • 분류 전체보기 (295)
      • Unity (17)
        • 게임 개발 (5)
      • Unreal (24)
        • 게임 개발 (20)
      • DirectX (36)
      • 코딩테스트 (91)
        • 프로그래머스 (25)
        • 백준 (66)
      • Google Workspace (1)
      • Programing (102)
        • C# (68)
        • C++ (24)
        • JavaScript (10)
      • 게임 서버 프로그래밍 (17)
      • Web (6)
        • 슈퍼코딩 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
    등록된 댓글이 없습니다.
  • 최근 공지
    등록된 공지가 없습니다.
# Home
# 공지사항
#
# 태그
# 검색결과
# 방명록
  • [C++ 프로그래밍] 리터럴(Literals)
    2024년 07월 10일
    • 유니얼
    • 작성자
    • 2024.07.10.:30
    728x90

    C++ 기초 프로그래밍: 리터럴(Literals)

    리터럴은 C++ 프로그램에서 고정된 값을 나타내는 데 사용됩니다. 리터럴은 변수나 상수에 값을 할당할 때 주로 사용되며, 다양한 타입을 지원합니다. 이번 블로그 글에서는 C++에서 지원하는 다양한 리터럴 타입과 그 사용법에 대해 알아보겠습니다.

    리터럴의 종류

    1. 정수 리터럴: 정수 값을 나타내는 리터럴로, 다양한 자료형과 결합하여 사용할 수 있습니다.
    2. 부동 소수점 리터럴: 소수점이 있는 실수 값을 나타내는 리터럴입니다.
    3. 문자 리터럴: 하나의 문자를 나타내는 리터럴로, 작은따옴표(')로 감싸서 표현합니다.
    4. 문자열 리터럴: 문자열을 나타내는 리터럴로, 큰따옴표(")로 감싸서 표현합니다.
    5. 불리언 리터럴: 참(true)과 거짓(false)을 나타내는 리터럴입니다.
    6. 포인터 리터럴: 포인터를 나타내는 리터럴로, nullptr을 사용합니다.

    정수 리터럴

    정수 리터럴은 10진수, 16진수, 8진수, 2진수로 표현할 수 있습니다. 각 정수 리터럴은 부호 없는(unsigned), 긴(long) 타입과 결합하여 사용할 수 있습니다.

    #include <iostream>
    
    int main()
    {
        // 리터럴 타입: unsigned(부호 없는)와 long(긴)의 조합.
        unsigned char unsigned_char {53u}; // 555U는 범위를 벗어나므로 실패
    
        // 2바이트
        short short_var {-32768}; 
        short int short_int {455};
        signed short signed_short {122};
        signed short int signed_short_int {-456};
        unsigned short int unsigned_short_int {5678U}; // U는 unsigned를 나타냄
    
        // 4바이트
        const int int_var {55};
        signed signed_var {66};
        signed int signed_int {77};
        unsigned int unsigned_int {555U}; // U는 unsigned를 나타냄
    
        // 4 또는 8 바이트
        long long_var {88L}; // 4 또는 8 바이트
        long int long_int {33L};
        signed long signed_long {44l};
        signed long int signed_long_int {44l};
        unsigned long int unsigned_long_int {555ul}; // ul은 unsigned long을 나타냄
    
        // 8바이트
        long long long_long {888ll}; // 8 바이트
        long long int long_long_int {999ll};
        signed long long signed_long_long {444ll};
        signed long long int signed_long_long_int{1234ll};
    
        // 숫자 그룹화: C++14 이후 지원
        unsigned int prize {1'500'000u}; // 1,500,000을 나타냄
        std::cout << "The prize is : " << prize << std::endl;
    
        std::cout << "signed_long_long_int : " << signed_long_long_int << std::endl;
    
        // 축소 변환 오류
        // 축소 변환 오류는 중괄호 초기화 방식에서 잡아냄.
        // 대입과 함수형 초기화는 이를 잡아내지 못함.
        // unsigned char distance {555u}; // 오류 [0~255]
        // unsigned int game_score {-20}; // 오류
    
        // std::cout << "game_score : " << game_score << std::endl;
    
        // 숫자 시스템 - 16진수: 0x로 접두어 붙임
        unsigned int hex_number{0x22BU}; // 555를 16진수로 나타냄
        int hex_number2 {0x400}; // 1024를 16진수로 나타냄
        std::cout << std::hex << "The hex number is : " << hex_number << std::endl;
        std::cout << std::dec << "The hex number2 is : " << hex_number2 << std::endl;
    
        // 16진수로 색상 표현
        int black_color {0xffffff};
        std::cout << "Black color is : " << std::dec << black_color << std::endl;
    
        // 8진수 리터럴: 0으로 접두어 붙임
        int octal_number {0777u}; // 511을 8진수로 나타냄
        std::cout << "The octal number is : " << octal_number << std::endl;
        // 십진수로 표현하려는 경우 0으로 시작하지 않도록 주의
        int error_octal {055}; // 이는 55가 아닌 45를 나타냄
        std::cout << "The erronous octal number is : " << error_octal << std::endl;
    
        // 2진수 리터럴
        unsigned int binary_literal {0b11111111u}; // 255를 2진수로 나타냄
        std::cout << "The binary literal is : " << binary_literal << std::endl;
    
        // 다른 리터럴들. 이 예제에서는 문자열에 대해 다룰 것이며, 이후에 더 자세히 배울 것임.
        char char_literal {'c'};
        int number_literal {15};
        float fractional_literal {1.5f};
        std::string string_literal {"Hit the road"};
    
        std::cout << "The char literal is : " << char_literal << std::endl;
        std::cout << "The number literal is : " << number_literal << std::endl;
        std::cout << "The fractional literal is : " << fractional_literal << std::endl;
        std::cout << "The string literal is : " << string_literal << std::endl;
    
        return 0;
    }
    

    출력 결과

    위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:

    The prize is : 1500000
    signed_long_long_int : 1234
    The hex number is : 22b
    The hex number2 is : 1024
    Black color is : 16777215
    The octal number is : 511
    The erronous octal number is : 45
    The binary literal is : 255
    The char literal is : c
    The number literal is : 15
    The fractional literal is : 1.5
    The string literal is : Hit the road
    

    주요 리터럴 설명

    정수 리터럴:

    • unsigned int prize {1'500'000u};는 1,500,000을 나타내는 정수 리터럴입니다. 숫자 그룹화(')를 사용하여 가독성을 높였습니다.
    • unsigned int hex_number{0x22BU};는 16진수 리터럴로, 555를 나타냅니다.
    • int octal_number {0777u};는 8진수 리터럴로, 511을 나타냅니다.
    • unsigned int binary_literal {0b11111111u};는 2진수 리터럴로, 255를 나타냅니다.

    부동 소수점 리터럴:

    • float fractional_literal {1.5f};는 소수점이 있는 실수 값을 나타내는 리터럴입니다.

    문자 리터럴:

    • char char_literal {'c'};는 하나의 문자를 나타내는 리터럴입니다.

    문자열 리터럴:

    • std::string string_literal {"Hit the road"};는 문자열을 나타내는 리터럴입니다.

    결론

    C++에서 리터럴은 고정된 값을 나타내는 데 사용되며, 다양한 타입을 지원합니다. 리터럴을 사용하면 변수나 상수에 값을 쉽게 할당할 수 있으며, 가독성과 유지 보수성을 높일 수 있습니다.

    반응형
    다음글
    다음 글이 없습니다.
    이전글
    이전 글이 없습니다.
    댓글
조회된 결과가 없습니다.
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
목차
표시할 목차가 없습니다.
    • 안녕하세요
    • 감사해요
    • 잘있어요

    티스토리툴바