2011-03-09 2 views
0

매뉴얼에서는 FF8055AAh를 씁니다. 프로그램에서 값 AA5580FF를 찾습니다. 작은 또는 큰 엔디안이 아닙니다. 그러나 그것은 무엇입니까?어떤 엔디안이 있습니까?

+0

왜 작은 또는 큰 엔디안이 아니십니까? – Zimbabao

+1

그들 중 하나는 (거의 확실한) 리틀 엔디안이며,이 경우 다른 하나는 빅 엔디안입니다. 그러나 더 많은 컨텍스트가 없으면 어느 것이 어떤 것인지 말할 수 없습니다. 그들이 제시해야하는 가치는 무엇입니까? – LukeH

+0

리틀 엔디안이 아닌 이유는 무엇입니까? 첫 번째 값이 원래 값이라고 가정하면 ... –

답변

3

리틀 엔디안입니다 (설명서의 값이 큰 글자라고 가정). 바이트는 {FF, 80, 55, AA}이므로 반대로 {AA, 55, 80, FF}가됩니다.

+0

어떻게 될 수 있습니까? 그래서 빅 엔디안이 아니라'{AA, 55,80, FF}'대신에 바이트가 확실할까요? – LukeH

+0

설명서의 값이 빅 엔디안이라고 자동 가정했기 때문에 – mgronber

1

프로세서가 바이트 지향적 인 경우 (가장 최신 프로세서가있는 경우) 리틀 또는 빅 엔디 언입니다. 바이트는 2 자리 16 진수입니다.

0

다음에 따라 작은 프로그램을 사용하여 엔디안을 확인할 수 있습니다

http://c-faq.com/misc/endiantest.html

을 당신이 당신의 엔디안 매뉴얼에 반대 게시 된 바로는. 바이트 순서 스와핑은 혼동 스럽지만 각 단어는 큰 또는 작은 엔디안으로 저장되어 스와핑이 발생합니다.

AABB CCDD에서 DDCC BBAA (16 비트 워드).

0

previous question에서이 16 진수 값을 단 정밀도 표현으로 변환하려고합니다. online hexadecimal-to-floating-point converter를 사용하여,이는 내가 무엇을 얻을 :

  • FF8055AA-NaN
  • AA5580FF된다 -1.8962955e-13

그래서되고, 진짜 문제는 이러한 숫자 중 하나가 당신이 기대하는 것처럼 보이는입니다 데이터 파일에서 볼 수 있습니까? 이들 중 어느 것이 든 원하는 것처럼 보이면 데이터 파일을로드하고 변환 할 때 그 값을 결과로 제공하는 것과 같이 엔디안이있는 것으로 데이터 파일을 처리하십시오.

+0

이 값은 IEEE 754가 아닙니다.이 파일에는 많은 데이터 유형이 있습니다. – kame

관련 문제