2013-02-13 5 views
0

그래서 값이 0이고 1로 채워지는 8 개의 드롭 다운 목록이 있습니다.이 8 개의 드롭 다운 목록에서 선택된 값을 사용하여이 값을 합하여 2 진수. 거기에서 이진수를 십진수로 변환합니다 (십진수 출력은 텍스트 상자에 표시되므로 드롭 다운 목록의 다른 숫자가 바뀔 때마다 십진수가 변경됩니다).드롭 다운 목록에서 이진수를 형성하십시오.

그러나 선택한 값 중 8 개를 결합하여 8 비트 이진수를 만드는 방법을 확신 할 수 없으므로이 번호를 얻으면 변환 할 수 있습니다. 내가 어떻게 시작해야하는지에 대한 제안?

+0

당신이 코드의 일부를하시기 바랍니다 게시 할 수 있을까요? – Kimi

답변

0

각 "비트"에 대해 이동하십시오. 최종 진수를 만들 수 |() 최상위 비트가 1이면

그래서, 1 < < 8

그런 다음, 비트 단위 또는합니까.

int i = 1 << 8; 
i |= (0 << 7); 
i |= (1 << 6); 

위의 (1, 0, 1 ..) 값은 드롭 다운 상자에서 가져와야합니다. 이것은 또한 당신이 드롭 다운의 변수 번호를 사용 할 수 있습니다

int x = 0; 
for (int i=dropdowns.Length - 1; i >= 0; i--) { 
x |= int.Parse(dropdowns[i].Text) << i;  
} 

: 당신은 목록 또는 배열에 드롭 다운 상자를 넣으면

, 당신은 매우 간결로이 모든 코드를 작성할 수 있습니다.

1

는 정말 나쁜 (그러나 쉬운) 방법 :

Convert.ToInt32(dd7.Text + dd6.Text + dd5.Text + dd4.Text + 
       dd3.Text + dd2.Text + dd1.Text + dd0.Text, 2) 
관련 문제