2017-04-01 8 views
1

거의 엔디안 변환 나는 ASCII에 작은 엔디안 문자열을는 ASCII

8989d0261ee17bbf95ea5596711538b0 

변환 도움이 필요합니다. 누군가이 과정을 안내 할 수 있습니까?

나는이 정확한지 모르겠지만, 나는 수행하여 I 소수점으로이 문자열을 변환 할 수 있다고 생각 :

8 * 16^(문자열 길이) + 9 * 16^(문자열 길이 - 1) + ... + 0 * 16^0

(문자열의 값에 해당 위치를 곱한 값). 그럼 일단 내가 그것을 얻으면, 나는 2^32를 빼서, 10 진수로 등가를 구할 것입니다. 그런 다음 온라인 변환기를 사용하여 십진수를 ASCII로 변환 할 수 있습니다. 이게 효과가 있니?

+0

나는 "그 자리에서 문자열의 값을 곱"부분을 따라하지만 그 후, 나는 잃었어요 : 여기

당신에게 관심이 될 수있는 많은 사례를 가지고 링크입니다. 우리는 돕고 싶습니다. 예제 또는 확장 된 설명으로 [편집]하십시오. 또한 해당되는 경우 프로그래밍 언어로 태그를 지정하십시오. –

+0

나는 그것이 내가 어딘가 온라인에서 읽은 것을 기억하기 때문에 2^32를 빼기로되어 있다고 생각한다. 나는 이것을하지 않아야합니까? – stackofhay42

+0

저는 이것이 부호없는 정수를 2의 보수 부호있는 정수로 변환하는 것과 관련이 있다고 생각합니다. 2^128이어야하는 비트의 수 때문에. 그러나 나는 아직도 따르지 않고있다. –

답변

0

추론이 정확합니다.

가 다수있는 경우

는베이스 (10)에, 수

같은

2 * 10^2 + 5 * 10^1 + 9 * 10^0을 재 기입 할 수있다 (259)를 말한다.

마찬가지로 위의 예에서 문자열의 각 문자에는 값 (16 진수와 비슷 함)이 할당됩니다. 나는 당신이 당신의 방정식으로부터 정확한 변환 부분을 가지고있는 것을 본다. 2의 보수은 이진수에 대한 연산이며 부호가있는 숫자의 표현에 사용됩니다. 이 방법론에 따라 10 진수로 동일한 값을 얻으려면 2^32를 빼야합니다.

ASCII 표현을 얻기 위해 비슷한 역 연산을 수행 할 수도 있습니다 (변환기를 사용할 수없는 경우에 대비). https://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html