2013-04-11 6 views
-1

나는 char [HEX]의 배열을 가졌다. 정수로 변환하는 방법을 모르겠습니다. 누구나 나를 안내 할 수 있습니까?char [HEX] 배열을 정수로 변환하는 방법은 무엇입니까?

내 코딩 :

char Hex[] = {'01', '0D'}; 

int a = (int(Hex[0]) >> 8)+ int(Hex[1]); 
int b = (Hex[0] << 8) | Hex[1]; 

cout << "a: " << a << " b: " << b; 

출력 :

a: 68 b: 12612 

내가 출력해야한다고 가정

269 
+0

이 질문이 도움이 될 수 있습니다 : http://stackoverflow.com/questions/1070497/c-convert-hex-string-to-signed-integer – Kirby

+1

16 진수는 16 진수 또는 16 진수로 짧습니다. 16을 누르거나 코드를 읽기 어려운 경우 4 씩 이동하십시오. –

+0

'char 16 진수 [] = { '01', '0D'}; '더 많은 것을 시도하기 전에 그 의미를 알아 내야합니다. 그것은 당신이 생각하는 것이 아닙니다. 'char Hex [] = {'1 ','D '};'와 같습니다. –

답변

1

완전히없는 것은 ASCII 변환입니다.

'f'은 값이 0x6f 인 문자입니다. 분명히 그것은 0x0f과 같지 않습니다.

0

귀하의 질문에 파악하기가 매우 어렵다. 나는 이것이 당신이 원하는 것이라고 생각합니다. 15에서 F와 F를 15로 변환하는 방법은 다음과 같습니다. 희망하시는 바입니다.

#include<iostream> 
#include<sstream> 

int main(){ 
    // decimal to hex 
    std::cout << std::hex << 15 << std::endl; 

    // hex to decimal 
    int mydecimal; 
    std::istringstream("f") >> std::hex >> mydecimal; 
    std::cout << std::dec << mydecimal << std::endl; 

    // hex to decimal method 2 
    std::cout << std::dec << 0xf << std::endl; 
} 
+0

당신이 16 진수가되기를 원한다면 아마 그것을 추가해야합니다. 숫자 앞에 0x를 추가하기 만하면됩니다. –

관련 문제