DailyOscar

C++ 변수에 관한 소소한 지식 본문

IT

C++ 변수에 관한 소소한 지식

OscarHS 2016. 2. 16. 03:29
반응형

C++ 변수에 관한 소소한 지식


C++에서 각 진법으로 디스플레이하기



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
int main()
{
    using namespace std;
 
    int num = 100;
 
    cout << "decNum : " << num << endl;
    cout << "octNum : " << oct << num << endl;
    cout << "hexNum : " << hex << num << endl;
 
    cout << dec;
 
    cout << num << endl;
 
    return 0;
}
cs




위 의 코드 중   

cout << oct

cout << hex

cout << dec 


은 화면에 아무 것도 디스플레이 하지 않는 대신,

앞으로 cout이 정수를 디스플레이 하는 방식을 변경합니다.

따라서 11번 라인에서 cout이 정수를 디스플레이 하는 방식이 16진수로 바뀐 상태에서

아무런 조치를 취하지 않고 정수를 출력한다면 계속해서 16진수로 출력이 되겠죠?


그렇기 때문에 13번 줄에서 정수 출력 방식을 10진수로 바꿨습니다.


식별자 dec oct hex는 std 이름 공간 안에 들어 있기 때문에

std 이름 공간이 사용되고 있는 곳 에서는 해당 키워드들을 변수명으로 사용할 경우

해당 식별자의 기능은 적용되지 않고 오로지 변수로써의 기능을 수행하게 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
    using namespace std;
 
    int num = 100;
    int hex = 8;
 
    cout << "decNum : " << num << endl;
    cout << "octNum : " << oct << num << endl;
    cout << "hexNum : " << hex << num << endl;
 
    cout << dec;
 
    cout << num << endl;
 
 
    return 0;
}
cs




hex 를 8이라고 선언과 동시에 초기화 하였습니다.

11번 줄에서 cout의 정수 출력방식이 바뀌었고

그 결과 hex에 초기화된 값 8이 8진수로 출력되어 10이 나온 후 100의 8진수 값 144가 출력되어

10144가 출력된 것을 확인할 수 있습니다.



위와 같은 경우를 방지하기 위해서 (식별자가 제 기능을 할 수 있도록)는

using 지시자를 생략하고 하나하나 직접 선언해주는 것 입니다!


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
 
int main()
{
    using std::hex;
    using std::oct;
    using std::dec;
    using std::cout;
    using std::endl;
 
    int num = 100;
 
    int hex = 8;
 
    cout << "decNum : " << num << endl;
    cout << "octNum : " << oct << num << endl;
    cout << "hexNum : " << hex << num << endl;
 
    cout << dec;
 
    cout << num << endl;
 
 
    return 0;
}
cs




반응형
Comments