2013-11-04 8 views
1

정수 나 긴 십진수를 포함한 모든 숫자를 이유식으로 변환해야하는 C#의 프로그램에 도움이 필요합니다.십진수가있는 숫자를 다른 기지로 변환하는 데 도움이 필요합니다. C#

프로그램에는 여러 개의 텍스트 상자 (win 형태)가 모두 공백으로 시작됩니다. 사용자가 모든 업데이트 상자 중 하나에 숫자 (십진수)를 추가합니다. 기본 상자는 기본 2,8,10,16이고 마지막 상자는 원하는 기본을 입력 할 수있는 하위 상자가 있습니다 (예를 들어 기본 숫자 16을 기본 7으로 변환하려는 경우에 사용).

전환 변환 이외의 다른 작업에 대해서는 모른다.

이 작업을 수행하는 방법을 모르는 경우 수동으로 수행하는 방법을 설명하는 것이 가장 좋습니다. 64.96 (기본 8 진수 열)?

이가. 내가 프로그램을 완료하기 위해 밖으로 설정 한 후 도전과를 개인 프로젝트 설정 ... 어떤 시간에 미리

감사합니다 엘프 !!

편집 : 어떻게하면 C#에서이 작업을 수행 할 수 있습니까? int BaseX는 내가 필요로하는 기반입니다. int preBaseX는 내가 시작하는 기반입니다. decimal outputNumber는 내가 검색하는 번호입니다. 십진수 inputNumber는 우리가 시작하는 곳입니다. (650.3112 또는 무엇이든 가능)

+2

이 변환을 수행하는 기존 클래스에 대해 googleing을 시도 했습니까? 나는 이것을 빠른 검색으로 찾았다 : http://stackoverflow.com/questions/923771/quickest-way-to-convert-a-base-10-number-to-any-base-in-net 이것 또한 : http : //www.codeproject.com/Articles/16872/Number-base-conversion-class-in-C – Killingsworth

답변

2

64.96을 8 진수로 변환하려면 먼저 표시 할 "8 진수"를 지나서 몇 칸을 결정하십시오. 의 당신이 그런 소수 부분 8^3 512

64.96 * 512 = 33259.52

폐기하여 수를 곱 3. 원하는 가정 해 봅시다. 이것은 64.96의 표현이 얼마나 멀리 떨어져 있는지입니다. 답은 0.52/512 = 0.001015625가 너무 작습니다.

이제 변환합니다. 지금

33259/8 = 4157 remainder 3 
4157/8 = 519 remainder 5 
519 /8 = 64 remainder 7 
64 /8 = 8 remainder 0 
8 /8 = 1 remainder 0 
1 /8 = 0 remainder 1 

역순으로 당신의 나머지를 가지고 끝에서 "진수 포인트"3 삽입 : 반복적으로 나머지를 추적, 8 전화 번호 (33259)에 나누어

100.753

+0

정말 도움이됩니다! 빠른 질문입니다. "8 진수 점"은 앞면에서 3 개가되거나 숫자 뒤쪽에서 3 개가됩니까? (당신은 100.753를 보여 줬다, 당신은 앞이나 뒤에서 세느냐?) – Masoniik

+0

3 뒤에서. 나는 내가 이제 깨닫는 "끝"은 모호하지만, 시작/끝과 마찬가지로 "끝"을 의미한다고 말했다. – vacawama

+0

이것은 물론 다른 기지에도 적용됩니다. 기수 16의 경우, 나머지 10에서 15는 각각 16 진수 "A"에서 "F"로 표시됩니다. – vacawama