엔디안 > 문제은행

본문 바로가기


알고리즘 자료구조2

1419 : 엔디안

제한시간: 1000 ms    메모리제한: 64 MB
해결횟수: 320 회    시도횟수: 805 회   



Lilliput의 사람들은 삶은 계란을 먹을 때 계란의 넓은 쪽부터 깨야 한다는 Big Endian파와 좁은 쪽부터 깨야 한다는 Little Endian 파로 나뉘어서 싸우고 있었다.


이 싸움은 삶은 계란 뿐만 아니라 생활 속의 다른 분야에까지 확대되었는데, 그 중 대표적인 것으로 컴퓨터에서 사용하는 데이터의 저장 방법이다.


Big Endian 파에서는 숫자를 저장할 때 위쪽 바이트부터 먼저 저장하는 방식이 옳다고 주장하였으며, Little Endian 파에서는 아래쪽 바이트부터 먼저 저장하는 방식이 옳다고 주장하였다.


예를 들어 32bit unsigned int 305,419,896 (0x12345678)을 Big Endian과 Little Endian으로 나타내면 다음과 같다.
00010010 00110100 01010110 01111000 (Big Endian)
01111000 01010110 00110100 00010010 (Little Endian)


이 들은 각자 자신이 주장하는 방식으로 컴퓨터를 만들어서 사용하였는데, 두 파의 사람들이 서로 데이터를 주고 받을 필요가 있을 경우 (항상 싸우기만 하는 것은 아니다.) Big Endian으로 저장된 데이터를 그대로 Little Endian 방식으로 읽었을 경우, 또는 반대의 경우에는 이상한 값이 되어버리기 때문에 Endian의 변환이 필요해진다. 예를 들어 위 예제의 Big Endian의 값을 그대로 Little Endian 방식으로 읽었을 경우 2,018,915,346 (0x78563412)이 된다.


이 들은 자신이 Endian을 변환해서 데이터를 보내주는 것을 원하지 않았기 때문에 일단 데이터를 받은 후에 자신들이 사용하는 Endian에 맞춰서 변환해야 한다. 당신은 이들을 도와 Endian을 변환하지 않고 받은 데이터를 원래의 데이터로 복원해주는 프로그램을 작성해야 한다.


입력은 하나의 숫자 (32bit unsigned int)로 이루어지며, 이는 Endian을 변환하지 않고 받아들인 데이터이다.



입력에 대한 원래 데이터를 출력한다.


[Copy]
2018915346
[Copy]
305419896


출처 : uva



HancomEducation E-mail : hancomc@hotmail.com, comkiwer@naver.com Tel : 070-7163-5782 FAX : 031-388-0996 정올소개 이용약관 개인정보처리방침
경기도 안양시 동안구 호계동 1065-10 협성골드프라자 601호, 경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호
Copyright@2010-2015 jungol. All right reserved.