1.
5번 괄호부분에
B[J] = ( ⑤ ) 라고 되어있고 정답에는 1-A[J]라고 되어있는데
어차피 A[J]와 B[J]가 보수형태이기만 하면 되는거니까
A[J] + 1 도 맞지 않나요>?? 궁금합니다
2.
236페이지는 괄호 4번에 INPUT[i+2]가 아니라 INPUT[i]가 아닌가요?>
1번에서 CONT[1] = INPUT[2]로 선언하면서
기존에 INPUT첫번째비트는 사라지고 INPUT[2]부터 CNT[1]에 들어갑니다.
근데
i+1번째와 i+2번째를 xor연산하면 CONT의 i+1번째가 아니라 i+2번째가 나오는거 아닌가요??
1 0 1 0 1 <- INPUT이라고 했을때
1 2 3 4 5 <- 순서번호(i)
X 0 1 0 1 <- CONT 아닌가요??
1 2 3 4 <- 순서번호(i)
이렇게 바뀌는게 아닌건가요??
3.
247페이지 2번 3번 괄호가 각각
Z - 2와 A[J] = Z 인데
2번에 Z대신 X[J] + Y[J]-2 이나, 3번에 A[J] = Z대신 A[J] = X[J] + Y[J] 는 안되나요??
안녕하세요. 길벗 수험서 운영팀입니다.
1. A[J] + 1 도 맞지 않나요>??
[답변]
안됩니다.
A[J]의 값이 0일 때는 문제가 없으나, 1일 때 문제가 됩니다.
A[J]의 값이 1일 때 1을 더하게 되면, 2가 저장되어 2진수가 아닌 값이 들어가게 되어 잘못된 결과가 출력됩니다.
2. i+1번째와 i+2번째를 xor연산하면 CONT의 i+1번째가 아니라 i+2번째가 나오는거 아닌가요??
[답변]
아닙니다.
INPUT[5]의 첫번째 비트가 연산할 값이 아닌 해당 자료를 이진수로 바꿀지 그레이 코드로 바꿀지 결정하는 인자임을 고려하셔야 합니다.
실제 연산에 들어가는 2진수는 INPUT[2]~INPUT[5]가 되는 것이지요.
이것을 234쪽의 해설에 대입해보면, 입력된 값이 INPUT[2]=1, INPUT[3]=0, INPUT[4]=1, INPUT[5]=1이 됩니다.
CONT[1]=INPUT[2]를 넣었으니, 다음 연산은 INPUT[2]와 INPUT[3]을 비교하여 CONT[2]에 넣는 연산이 나와야겠네요.
이것을 순서도에 대입해보면, 반복문에서 i는 1부터 시작하니 INPUT[i+1]=INPUT[i+2]가 되는 것이 맞습니다.
3. 2번에 Z대신 X[J] + Y[J]-2 이나, 3번에 A[J] = Z대신 A[J] = X[J] + Y[J] 는 안되나요??
[답변]
X[J] + Y[J]-2의 경우는 안됩니다.
위에서 Z의 값은 X[J]+Y[J]+C를 저장합니다. 자리올림수가 포함되어 있는 값이 되어야 하므로 C 값이 빠진 X[J]+Y[J]는 될 수 없습니다. +C를 추가한다고 하여도 C는 이미 다음 올림수를 저장하고 있기 때문에 이전 저장수를 더하여 갖고 있는 변수 Z가 반드시 쓰여야 합니다.
X[J] + Y[J] 또한 위의 경우와 마찬가지로 안됩니다.
이전 계산에서 가져온 자리올림수가 제외되었기 때문입니다.
행복한 하루되세요.^^
-
*2018-09-27 16:48:58
안녕하세요. 길벗 수험서 운영팀입니다.
1. A[J] + 1 도 맞지 않나요>??
[답변]
안됩니다.
A[J]의 값이 0일 때는 문제가 없으나, 1일 때 문제가 됩니다.
A[J]의 값이 1일 때 1을 더하게 되면, 2가 저장되어 2진수가 아닌 값이 들어가게 되어 잘못된 결과가 출력됩니다.
2. i+1번째와 i+2번째를 xor연산하면 CONT의 i+1번째가 아니라 i+2번째가 나오는거 아닌가요??
[답변]
아닙니다.
INPUT[5]의 첫번째 비트가 연산할 값이 아닌 해당 자료를 이진수로 바꿀지 그레이 코드로 바꿀지 결정하는 인자임을 고려하셔야 합니다.
실제 연산에 들어가는 2진수는 INPUT[2]~INPUT[5]가 되는 것이지요.
이것을 234쪽의 해설에 대입해보면, 입력된 값이 INPUT[2]=1, INPUT[3]=0, INPUT[4]=1, INPUT[5]=1이 됩니다.
CONT[1]=INPUT[2]를 넣었으니, 다음 연산은 INPUT[2]와 INPUT[3]을 비교하여 CONT[2]에 넣는 연산이 나와야겠네요.
이것을 순서도에 대입해보면, 반복문에서 i는 1부터 시작하니 INPUT[i+1]=INPUT[i+2]가 되는 것이 맞습니다.
3. 2번에 Z대신 X[J] + Y[J]-2 이나, 3번에 A[J] = Z대신 A[J] = X[J] + Y[J] 는 안되나요??
[답변]
X[J] + Y[J]-2의 경우는 안됩니다.
위에서 Z의 값은 X[J]+Y[J]+C를 저장합니다. 자리올림수가 포함되어 있는 값이 되어야 하므로 C 값이 빠진 X[J]+Y[J]는 될 수 없습니다. +C를 추가한다고 하여도 C는 이미 다음 올림수를 저장하고 있기 때문에 이전 저장수를 더하여 갖고 있는 변수 Z가 반드시 쓰여야 합니다.
X[J] + Y[J] 또한 위의 경우와 마찬가지로 안됩니다.
이전 계산에서 가져온 자리올림수가 제외되었기 때문입니다.
행복한 하루되세요.^^