int를 vector<char>에 넣으려면?
글쓴이: lacovnk / 작성시간: 토, 2005/10/01 - 1:40오후
endian 문제는 넘어가고..
int가 4B, char가 1B일때
int 값이 [A/B/C/D] 로 되어있다고 치면
각각의 byte를 vector<char>에 넣고 싶습니다!
void pushInt(vector<char>& rep,int src) { char* ptr = (char*)&src; for(unsigned int i=0;i<sizeof(int);i++) { rep.push_back(*ptr); ptr++; } }
음음.. 더 좋은 방법이 있을까요?
덧붙여, unsigned char와 char는 뭐가 다르나요? 음음..
Forums:
rep.insert(rep.end(), ptr, ptr+sizeof(sr
rep.insert(rep.end(), ptr, ptr+sizeof(src));
이런 방법이 있긴 한데요.
Re: int를 vector<char>에 넣으려면?
unsigned char는 부호가 없고 적어도 0~255를 표현할 수 있는 정수형입니다.
signed char는 부호가 있고 적어도 -127~127를 표현할 수 있는 정수형입니다.
char는 구현체에 따라 유부호형일 수도 있고 무부호형일 수도 있습니다.
주의할 점은 char가 유부호형인 구현체에서도 char와 signed char는 서로 다른
형이라는 것입니다. 무부호형일 경우 char와 unsigned char도 다르고요.
unsigned char : -128~127 으로 수정해야 할 듯.
unsigned char : -128~127 으로 수정해야 할 듯.
[quote="딴지"]unsigned char : -128~127 으로
예상치 못한 딴지로군요. ^^; signed char를 잘못 쓰신 거죠?
댓글 달기