프로그램 명: endian(open)
제한시간: 1 초

완전히 다른 운영체제간 완전히 이식이 되는 프로그램을 작성하는 것은 , 운영체제 버젼과 하드웨어 플랫폼이 관건이다. 하드웨어 업체가 정수 데이터를 메모리에 어떻게 표현할 까를 결정하는 것에 따라 어려움에 봉착하게 된다.

정수를 표현하는 방법이 기계마다 다르기 때문에 이진 데이터를 공유하는 것은 데이터를 저장하는 방법을 수정없이 사용할 수는 없다.

다행히도 8 비트 단위로 주소를 부영하는 전 세계적인 하드웨어 업체사이에 합의가 있었다.

8 비트 이상을 요구하는 정수 값에 ( 즉 2 바이트 , 4 바이트 , 8 바이트 정수 타입) 에 대해서는 합의가 이루어지지 않아 두 가지의 호환되지 않는 저장 방법이 존재한다.

전자를 보통 Little Endian 으로 후자를 Big Endian 으로 부른다.

보통 부호 있는 정수를 표현하는 방법으로 2 의 보수 형태로 표현하기로 합의를 해서 여기에서도 정수 표현은 2 의 보수 형태로 한다.

이진 정수 데이터가 Little Endian 과 Big endian 기계사이를 공유할 때 , 이 데이터들을 뒤집는 작업이 이루어져야 한다.

우리가 해야 할 일은 입력 정수를 읽어 이를 다른 Endian 표현으로 바꾸어 10 진 형태로 출력하는 것이다.

입력

입력은 여러 개의 정수로 이루어진다. 입력의 끝은 EOF 이다.

입력 되는 정수 값은 32 비트 부호형 정수로 표현 될 수 있다. 즉 , 입력의 정수는 -2147483648 ~ 2147483647 이다.

출력

매 입력에 대한 출력을 출력 예의 형식으로 출력한다.

입출력 예

입력

123456789
-123456789
1
16777216
20034556

출력

123456789 converts to 365779719
-123456789 converts to -349002504
1 converts to 16777216
16777216 converts to 1
20034556 converts to -55365375
출처:acm

[질/답] [제출 현황] [푼 후(0)]
[ 채 점 ] [홈으로]  [뒤 로]