Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[2302] 바이너리 파일 출력에 관한 질문
권기식.별사랑 [orion96] 1832 읽음    2003-04-08 01:34
안녕하세요?
엔디안에 대해서 알아보다가 직접 프로그램을 작성해서 테스트 해보려고 합니다.

#include <iostream>
#include <fstream>
using namespace std;

int main(int argc, char *argv[])
{
    ofstream outfile;
    unsigned char ch[2];
   
    ch[0] = 0x01;
    ch[1] = 0x02;
    outfile.open("endian");
    outfile.write(ch, 2);
    outfile.close();
   
    return 0;
}

위와 같이 작성해서 윈도우, 리눅스에서 돌려보았는데요...
리눅스에서는 리틀 엔디안임을 쉽게 알 수 있더군요..
od -cx endian 해서 보면
0201의 순서로 기록된 것을 볼 수 있었습니다.
반면 윈도우에서 debug나 비주얼 씨 등을 이용해서 열어보면 01 02의 순서로 기록되어있었습니다.
하지만 인텔 계열의 CPU에서 작동하는 윈도우는 분명 리틀 엔디안이 아닙니까..
어셈블리 배울 때도 직접 눈으로 확인했었고...
그래서 비트맵 파일을 불러서 파일 사이즈 기록 부분에서 상위 바이트와 하위 바이트의 위치가 바뀌어있음을 확인했습니다.

왜 이런걸까요?

c++에서 1바이트보다 큰 데이터를 저장하려면 어떻게 해야 합니까?
비주얼 베이직에서는 쉽게 했는데, 막상 c++에서 하려니 잘 모르겠더군요.

명쾌한 답변을 해주실 분을 기다리겠습니다~ ^^

+ -

관련 글 리스트
2302 바이너리 파일 출력에 관한 질문 권기식.별사랑 1832 2003/04/08
3959     Re:바이너리 파일 출력에 관한 질문 임문환 1438 2003/04/08
3958     Re:바이너리 파일 출력에 관한 질문 임문환 1468 2003/04/08
3957     Re:바이너리 파일 출력에 관한 질문 임문환 1494 2003/04/08
3956     Re:바이너리 파일 출력에 관한 질문 임문환 1358 2003/04/08
3955     Re:바이너리 파일 출력에 관한 질문 권기식.별사랑 1458 2003/04/08
3954     Re:바이너리 파일 출력에 관한 질문 권기식.별사랑 1492 2003/04/08
3953     Re:바이너리 파일 출력에 관한 질문 권기식.별사랑 1450 2003/04/08
3952     Re:바이너리 파일 출력에 관한 질문 권기식.별사랑 1472 2003/04/08
3951     Re:바이너리 파일 출력에 관한 질문 임문환 1559 2003/04/08
3950     Re:바이너리 파일 출력에 관한 질문 임문환 1490 2003/04/08
3949     Re:바이너리 파일 출력에 관한 질문 임문환 1478 2003/04/08
2303     추가 질문 권기식.별사랑 1527 2003/04/08
2304         Re:추가 질문 임문환 1411 2003/04/08
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.