#2151 엔디안

11  1 s   128 MB  

Description

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을 변환하지 않고 받은 데이터를 원래의 데이터로 복원해주는 프로그램을 작성해야 한다.

Input

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

Output

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

Sample Input

Sample Output

2018915346
305419896

Sample Input 2

4294967295

Sample Output 2

4294967295

Source

Toivoa@algospot.com