안녕하세요.
1.
교재 201쪽이 1번 문제 해설을 보면,중괄호와 따옴표를 필수로 기재해야만 한다고 설명하고 있습니다.
그런데 이에 대한 이유는 제대로 설명이 안 되어있는 거 같아서 문의드립니다.
python에서 {}는 세트를 의미하고, 세트 안의 문자열은 꼭 ''로 묶어야만 한다. 라고 이해하면 될까요?
201쪽의 1번 문제는 세트 전체를 표시하는 것이기 때문에 {}와 ''가 필수인 것이고
198쪽 예제 3번은 세트 전체를 표시 하는 것이 아닌, 일부만 표시하는 것이기 때문에 {}와 ''를 빼고 적는 것이다. =>{'apple'}로 표시하지 않음
이렇게 이해해도 되는걸까요?
2.
교재 231쪽 25번 문제에서 ~b를 계산할 때 왜
0000 0000 0000 0000 0000 0000 0000 0011
~ 1111 1111 1111 1111 1111 1111 1111 1100
까지만 하고 2의보수 계산을 하지 않는건가요?
교재 225쪽 9번 문제에서 ~a를 할때에는
0000 1111
~ (1111 0000)
1000 1111 (부호비트만 그대로 두고 나머지는 다시 뒤집고)
여기에다가 +1까지 해서
1001 0000
최종적으로 -16 이라는 값이 답인데 말이죠.
이 두 문제의 차이점이 뭔지 궁금합니다.
답변 기다리겠습니다.
감사합니다.
안녕하세요 길벗수험서 운영팀입니다.
다중값이 출력될 수 있는 '개체'를 출력할 때는 해당 개체의 특성에 맞는 묶음 기호와, 숫자와 문자를 구분할 수 있는 따옴표 등을 포함하여 출력해줘야 합니다. (파이썬에 한정하여 적용, C나 JAVA의 기본 라이브러리에서는 개체단위 출력을 지원하지 않습니다.)
리스트라면 대괄호[]를, 세트나 딕셔너리라면 중괄호{}가 값들을 묶어줘야 하죠.
또한 문자열은 따옴표, 숫자는 그대로 출력한 후 각 값들은 쉼표,로 구분지어 주시면 됩니다.
단일 값(요소)을 출력할 때는 해당 값을 그대로 문자열을 구분하는 따옴표가 포함되지 않고 문자나, 숫자 그대로 출력됩니다.
-------------------
추가적인 비트 연산이 남아있기 때문입니다.
음수에 대한 2의 보수화는 기본적으로 '2진수로 PC에 저장되는 형태' <-> '10진수로 전환하기 위한 형태' 를 서로 교체하기 위함이라고 기억해 두세요. 실제 PC에 저장되고 연산에 필요한 비트는 2의 보수화를 수행하기 전 형태입니다.
b에 not을 적용하고 2의 보수화를 통해 10진수 변환 직전 형태로 바꾸어봤자 이후 수행할 & 연산을 위해서는 실제 PC에 저장된 ~b의 원래 2진수 값을 이용해야 하므로 괜히 2의 보수화를 수행해서 10진수 값을 알아봐야 의미가 없기 때문에 해당 과정이 생략된 것입니다.
행복한 하루되세요 :)
-
관리자2023-03-24 10:07:16
안녕하세요 길벗수험서 운영팀입니다.
다중값이 출력될 수 있는 '개체'를 출력할 때는 해당 개체의 특성에 맞는 묶음 기호와, 숫자와 문자를 구분할 수 있는 따옴표 등을 포함하여 출력해줘야 합니다. (파이썬에 한정하여 적용, C나 JAVA의 기본 라이브러리에서는 개체단위 출력을 지원하지 않습니다.)
리스트라면 대괄호[]를, 세트나 딕셔너리라면 중괄호{}가 값들을 묶어줘야 하죠.
또한 문자열은 따옴표, 숫자는 그대로 출력한 후 각 값들은 쉼표,로 구분지어 주시면 됩니다.
단일 값(요소)을 출력할 때는 해당 값을 그대로 문자열을 구분하는 따옴표가 포함되지 않고 문자나, 숫자 그대로 출력됩니다.
-------------------
추가적인 비트 연산이 남아있기 때문입니다.
음수에 대한 2의 보수화는 기본적으로 '2진수로 PC에 저장되는 형태' <-> '10진수로 전환하기 위한 형태' 를 서로 교체하기 위함이라고 기억해 두세요. 실제 PC에 저장되고 연산에 필요한 비트는 2의 보수화를 수행하기 전 형태입니다.
b에 not을 적용하고 2의 보수화를 통해 10진수 변환 직전 형태로 바꾸어봤자 이후 수행할 & 연산을 위해서는 실제 PC에 저장된 ~b의 원래 2진수 값을 이용해야 하므로 괜히 2의 보수화를 수행해서 10진수 값을 알아봐야 의미가 없기 때문에 해당 과정이 생략된 것입니다.
행복한 하루되세요 :)