2011-01-15 13 views
2

나는이 작업을 수행하려고 노력했지만 좋은 소스를 찾을 수 없었다.C++ char 배열을 int로, int를 char 배열로

기본적으로 char * 변수 (바이트 배열)를 int로 변환하고 싶습니다. 감사합니다. .

+2

배열의 내용을 처리하는 방법을 지정하지 않으므로 질문이 막연합니다. 포인터 캐스팅, 문자열 변환 및 바이트 배열을 8 비트 정수로 처리하는 것을 포함하여 최소한 세 가지 해석이 있습니다. –

답변

1

다음을 수행 할 필요가보다

. 기술적으로 이것은 UB이지만 바이트가 올바른 형식으로되어 있다는 것을 알게되면 일반적으로 요청한 결과가됩니다.

이것은 char * STRING과 char * BYTE ARRAY의 차이점을 지적하는 동안입니다.

2

문자열을 정수로 변환하려면 atoi 함수와 sprintf을 다른 방향으로 사용하면됩니다.

UPDATE (주석 참조) : 당신은 당신이 reinterpret_cast를 사용하기에 충분를 int로 바이트 배열로 변환하려는 경우

char *word = "Hello world"; 
int ints[11]; 
for(int i=0; i<strlen(word); ++i) 
     ints[i] = (int)word[i]; 
+0

비트 연산자에 대해 이야기했습니다. 변환과 같은 문자열이 아닙니다. – SBSTP

+1

무엇을 의미합니까? 어떤 종류의 데이터가 char *에 들어 있는지, 그리고 어떤 종류의 int로 끝날지에 대한 예제를 제공하면 도움이 될 것입니다. 이 경우 "비트 연산자"는 의미가없는 것처럼 보이므로 질문은 분명하지 않아야합니다. –

+0

음, 파일의 4 바이트를 읽었습니다. 그들은 char *에 저장되어 있고 그것을 int로 만들고 싶습니다. 그리고 int를 char로 변환하고 싶습니다. 숫자를 숫자 문자열 값으로 변환하지 않습니다. – SBSTP