2013-09-06 2 views
0

C#이나 Delphi에서 Base 256 (바이트)에서 Base 10 (십진수)로 변환해야합니다. 실제 목표는 주어진 파일의 내용을 매우 큰 10 진수로 표시하고이를 txt 파일에 저장하는 것입니다. 우리 모두는 한 기지에서 다른 기지로 변환하는 방법을 알고 있지만, 여기 실제 도전은 숫자의 크기입니다. 도움이 될 것입니다.많은 수를 Base 256에서 Base 10으로 변환하십시오.

+5

Base 256 바이너리는 언제부터입니까? 2 진수는 기본 2 – DiMono

+0

무엇을 시도 했습니까? 그냥 호기심에서 벗어났습니다. 이유가 무엇입니까? 그것들은 더 이상 완전한 문자 세트를 사용하여 데이터를 저장하는 것이 효율적이지 않습니다. 왜냐하면 모든 것들이 단지 바이너리 – UpQuark

+0

@DiMono로 저장되기 때문입니다. 죄송합니다. 0과 1을 의미하지 않았습니다. 바이너리 파일의 내용을 의미했습니다. 질문을 수정했습니다. –

답변

11

.NET 4 이상을 사용하는 경우 BigInteger(byte[]) 생성자를 사용할 수 있고 그 결과를 10 진수 문자열로 변환 할 수 있습니다 (또는 단지 을 사용하십시오. 숫자). 입력의 엔디안에 따라 입력 배열의 바이트를 반대로해야 할 수도 있습니다.

+8

나는이 웹 사이트에 다른 사람들을 돕는 것을 목표로하는 관대하고 전문적인 프로그래머가 있다는 것에 만족합니다. 대신에 askers에서 재미를 파고, 또는 조랑말을 찾고. 고마워. 존. –

1

업데이트 내용은 매우 간단합니다.

일부 getc() 함수를 사용하여 이진 파일을 문자로 읽으려고하는 것처럼 들립니다. 정확한 이름은 나를 이스케이프 처리합니다. 모든 문자는 1 바이트로 표현되므로 256 개의 옵션이 있습니다. 이것은 chars에게 8 비트 정수로 일정 수준의 투자율을 부여합니다. 문자를 읽고 정수로 캐스팅 할 수 있어야합니다.이 문자는 문자의 8 비트를 십진수로 나타냅니다.

또한 chars는 256이 아니며 단지 8 비트 2 진수입니다.

+0

아니요. 전체 내용을 숫자로 표시합니다. –

+0

실수로 8 비트 청크로 파일을 읽으려고 한 것 같습니다. – UpQuark

+0

@Delphi Boy : 파일에 N 바이트가 들어있는 경우 해당 내용을 8 * N 비트 이진수로 처리 한 다음 10 진수 표현으로 변환하고 싶습니까? – MartynA