처음에 이진 자료 배열에
1) 10010
2) 11010
3) 01101 이런식으로 3개가 들어가있다고 할때
검정색동그라미 5번에 의해서 1)과 2)는 Yes로 3)은 no로 갑니다.
3)은 이해가 되는데
1)과 2)가 이해가 되지 않습니다.
1)경우
Input[3]=cont[1]
yes
cont[2]=0
Input[4]=cont[2]
no
cont[3]=1
Input[5]=cont[3]
no
cont[4]=1
cont[1]= 0
cont[2]=0
cont[3]=1
cont[4]=1
0010이 나와야 정상인거 아닌가요??
만약에 10010이 그레이코드라면
1100이 나와야 되는거고요
이상한거 같은데 원리좀 설명해주세요
디버깅말고 왜 입력된 input 배열과 결과로 나오는 이진수 값이 다르게 나타나는지 설명 부탁드립니다.
안녕하세요.
10010 은 맨 앞이 1이므로 이후 4비트인 0010은 그레이코드입니다.
그러므로 그레이코드 0010을 이진수로 변환하면 0011이 됩니다.
11010 은 맨 앞이 1이므로 이후 4비트인 1010은 그레이코드입니다.
그러므로 그레이코드 1010을 이진수로 변환하면 1100이 됩니다.
0010 그레이 코드를 이진수로 변환하는 과정입니다.
맨 앞의 비트는 판별용 이었으므로 실제 변환할 비트는
INPUT[2] ~ INPUT[5] 이렇게 4개의 비트입니다.
첫 번째 0, 즉 INPUT[2]는 이진수 첫 번째 비트로 그대로 저장됩니다. 그러므로 CONT[1]은 0이 됩니다.
그 다음 CONT[2]는 첫 번째 이진수 비트인 CONT[1]과 입력된 그레이 코드 중 두 번째 비트, 즉 INPUT[3]과 비교합니다.
CONT[1]은 0이고 INPUT[3]도 0이므로 같으니까 0이 저장되어 CONT[2]는 0이 됩니다.
그 다음 CONT[3]은 두 번째 이진수 비트인 CONT[2]와 입력된 그레이 코드 중 세 번째 비트, 즉 INPUT[4]와 비교합니다.
CONT[2]은 0이고 INPUT[4]는 1이므로 다르니까 1이 저장되어 CONT[3]은 1이 됩니다.
그 다음 CONT[4]는 세 번째 이진수 비트인 CONT[3]과 입력된 그레이 코드 중 네 번째 비트, 즉 INPUT[5]와 비교합니다.
CONT[3]은 1이고 INPUT[5]는 0이므로 다르니까 1이 저장되어 CONT[4]는 1이 됩니다.
결국 변환된 이진수 즉 CONT 배열의 값은 0 0 1 1이 됩니다.
오늘도 즐거운 하루 되세요.
-
*2017-04-14 15:47:14
안녕하세요.
10010 은 맨 앞이 1이므로 이후 4비트인 0010은 그레이코드입니다.
그러므로 그레이코드 0010을 이진수로 변환하면 0011이 됩니다.
11010 은 맨 앞이 1이므로 이후 4비트인 1010은 그레이코드입니다.
그러므로 그레이코드 1010을 이진수로 변환하면 1100이 됩니다.
0010 그레이 코드를 이진수로 변환하는 과정입니다.
맨 앞의 비트는 판별용 이었으므로 실제 변환할 비트는
INPUT[2] ~ INPUT[5] 이렇게 4개의 비트입니다.
첫 번째 0, 즉 INPUT[2]는 이진수 첫 번째 비트로 그대로 저장됩니다. 그러므로 CONT[1]은 0이 됩니다.
그 다음 CONT[2]는 첫 번째 이진수 비트인 CONT[1]과 입력된 그레이 코드 중 두 번째 비트, 즉 INPUT[3]과 비교합니다.
CONT[1]은 0이고 INPUT[3]도 0이므로 같으니까 0이 저장되어 CONT[2]는 0이 됩니다.
그 다음 CONT[3]은 두 번째 이진수 비트인 CONT[2]와 입력된 그레이 코드 중 세 번째 비트, 즉 INPUT[4]와 비교합니다.
CONT[2]은 0이고 INPUT[4]는 1이므로 다르니까 1이 저장되어 CONT[3]은 1이 됩니다.
그 다음 CONT[4]는 세 번째 이진수 비트인 CONT[3]과 입력된 그레이 코드 중 네 번째 비트, 즉 INPUT[5]와 비교합니다.
CONT[3]은 1이고 INPUT[5]는 0이므로 다르니까 1이 저장되어 CONT[4]는 1이 됩니다.
결국 변환된 이진수 즉 CONT 배열의 값은 0 0 1 1이 됩니다.
오늘도 즐거운 하루 되세요.