2009-11-30 2 views
0

Platfrom 3.5 (C#).net은 ASCII를 bcd로 변환하는 API를 제공합니까?

ascii를 bcd (C#)로 변환하는 코드를 참조하십시오.

+3

BCD 숫자를 저장하는 경우에만 유용합니다. 왜 ACSII를 BCD로 변환하려고합니까? –

+0

은 숙제 냄새가납니다. –

+0

사람들이 다른 질문으로 대답 할 때 나는 그것을 싫어한다. 그가 원하기 때문에 그는 ASCII를 BCD로 변환하려고합니다. –

답변

3

정수 num은 BCD 값을 저장합니다 ... 더 깨끗한 방법 일 수 있지만 트릭을 수행해야합니다. 그러나 나는 왜 다시 물을 것인가? 당신은 ... (이 검사 경계가없는) LINQ에서 작업을 수행하려는 경우

char[] str = "12345".ToCharArray(); 
int num = 0; 
for (int i = 0; i < str.Length; i++) 
{ 
    var val = str[str.Length -1 - i] - 48; 
    if (val < 0 || val > 9) 
     throw new ArgumentOutOfRangeException(); 
    num += val << (4 * i); 
} 

Console.WriteLine(num.ToString("x2")); //must be viewed as hex 

은 ...

int vs = "12345".ToCharArray().Reverse() 
       .Select((c, i) => (c-48) << 4 * i) 
       .Sum(); 
관련 문제