C#에서 기본 변환을 수행 할 준비가 된 함수가 있습니까? 나는베이스 26과베이스 27을 10 진수로 변환하려고합니다. 나는 종이로 할 수 있지만 경험이 많은 프로그래머는 아니며 가능하면 처음부터 그렇게하지 않을 것입니다. 감사!C#에서 base-27 (또는 base-X)을 base-10으로 변환 하시겠습니까?
4
A
답변
3
10 (Convert.ToInt32
)를 기반으로하는 기본 2, 8, 16에서 숫자를 변환하는 기성품 기능이있다. 기본 26 또는 기본 27을 기본 10으로 변환하려면 직접해야합니다.
이제 기본 26 숫자에 대해 들어 본 적이 없으므로 '숫자'는 A부터 Z까지 (A는 0, Z는 25의 십진수) 가정합니다. 단지 26
주 대표하는 자 등 추가
string charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int GetDigitValue(char digit)
{
return charset.IndexOf(digit);
}
int ConvertFromBase26(string number)
{
int result = 0;
foreach(char digit in number)
result = result * charset.Length + GetDigitValue(digit);
return result;
}
베이스 (27)에서 변환하려면 : 당신이 다음을 수행해야합니다 (10)를 기반으로하는 기본 (26)로 변환하는 오류 정정이 없습니다 (당신은 문자열을 변환 할 수 있습니다 "$ # $ @ # $ @"는 좋은 음수를 얻을 것입니다.) GetDigitValue는 다소 비효율적이므로 이러한 변환을 많이 수행하려는 경우 조회 테이블로 교체해야합니다.
편집 : 단지 차기에 대한 LINQ 버전.
는 다시, 더 효율적인 조회 및 오류 정정, 문자열을 가정에만 법적 숫자로 구성합니다.
string charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int ConvertFromBase(string charset, string number)
{
return number.Select(c=>charset.IndexOf(c)).Aggregate(0, (x, y) => x*charset.Length +y);
}
첫 번째 버전이 더 읽기 쉽다고 생각합니다. 답 떨어져 구축
0
. 문자 ASCII 값을 사용할 수 있기 때문에 charset 조회 목록이 필요 없습니다.
int ConvertFromBase26(string number)
{
return number.Select(digit => (int)digit - 64).Aggregate(0, (x, y) => x * 26 + y);
}
나는이 엑셀 프로그래밍 동안의 int로 열 문자열 주소를 변환하는 데 사용.
관련 문제
- 1. c에서 구조를 pywin32로 변환 하시겠습니까?
- 2. 목표 C에서 16 진수를 base64로 변환 하시겠습니까?
- 3. 어떻게 C에서 ASCII로 16 진수로 변환 하시겠습니까?
- 4. C에서 char 문자를 숫자로 변환 하시겠습니까?
- 5. 위키를 C에서 변환 또는 구문 분석 #
- 6. C에서 SQL에서 LINQ로 변환
- 7. C에서 부호없는 char로 변환
- 8. C에서 선언을 델파이로 변환
- 9. 유형 C에서 Java로 변환
- 10. C에서 배열 문자 변환
- 11. C에서 시간대 변환
- 12. C에서 소수점 이하로 변환
- 13. C에서 double을 int로 변환
- 14. 문자열을 C에서 smtpclient로 변환 #
- 15. C에서 struct 유형 변환
- 16. C에서 double double 변환 #
- 17. LaTeX를 내보내거나 R 또는 Matlab으로 변환 하시겠습니까?
- 18. POJO를 JSON으로 또는 그 반대로 변환 하시겠습니까?
- 19. CLOB의 형식을 변환 또는 제거 하시겠습니까?
- 20. 바이트 배열을 Dictionary 또는 NameValueCollection으로 변환 하시겠습니까?
- 21. flv 또는 swf로 비디오를 PHP로 변환 하시겠습니까?
- 22. C에서 numpy 배열 형식 변환
- 23. C에서 이미지 파일 유형 변환 #
- 24. Objective-C에서 CGPoint를 GLKVector2로 변환
- 25. 목표 C에서 십진법을 분수 (유리수)로 변환 하시겠습니까?
- 26. C에서 스파 스 매트릭스 변환
- 27. C에서 가장 빠른 UInt32 변환 #
- 28. 목표 C에서 NSMutableString을 NSUrl로 변환
- 29. C에서 진술을 시도 하시겠습니까?
- 30. C에서 구형파를 생성 하시겠습니까?
"무엇을 시도하셨습니까?" (시도를 참조하는 것이 바람직하다도 완벽하게 작동하지 않는 경우, 그런 다음 세부 사항이 논의 될 수 있고, 노력이 증명되었다.) –
또한, * 기존의 * base64로 인코더/디코더보고 고려; 그것은 수학에서 단지 약간 다른 숫자입니다 ('/'또는'%'대신 64,'/'또는'% 'by 27 등). 그러나 아이디어는 같습니다. –
pst : 나는 무엇인가를 시도하지 않았습니다. 무엇인가 존재한다면 그것을 쓰고 싶지 않기 때문입니다. 나는 어떤 방법 으로든 완성 된 코드를 요구하지 않고, 나는 단지 어떤 방향을 찾고있다. 감사! – miltonjbradley