[C, C++] hex to int와 c++에서 hex 출력

C의 printf로 hex값을 int로 출력

C에서 헥사값(hex)를 정수(int)로 print하는건 매우 간단하다. 일반적으로 printf에서 정수를 출력하기 위해 사용하는 출력문자를 %d 대신 %x로 사용하면 된다.

#include <stdio.h>

int main()
{
    unsigned char input = 0x78;
    printf("printf input d: %d\n", input); // printf input d: 120
    printf("printf input d: %x\n", input); // printf input d: 78
    return 0;
}

C++의 cout에서도 출력될까?

C++의 iostream에는 출력함수로 cout을 제공한다. 그런데 cout에서 0x78을 그대로 출력하면 정상적으로 출력되지 않는다.

// Online C compiler to run C program online
#include <stdio.h>
#include <iostream>

int main()
{
    unsigned char input = 0x78;
    std::cout<<"cout input: "<<input<<std::endl; // cout input: x
    return 0;
}

Hex to Int

hex값을 그대로 cout으로 출력하면 정상적이지 않지만 static_cast로 타입캐스팅을 하면 정상적으로 출력할 수 있다.

출력 뿐 아니라 hex를 int로 변환하여 변수로 저장하고 싶을때도 사용할 수 있다.

// Online C compiler to run C program online
#include <stdio.h>
#include <iostream>

int main()
{
    unsigned char input = 0x78;
    int inputDecimal = static_cast<int>(input); 
    std::cout<<"cout inputDecimal: "<<inputDecimal<<std::endl; // cout inputDecimal: 120
    return 0;
}

Leave a Comment