파이썬 궁금한거 질문 있습니다

파이썬 궁금한거 질문 있습니다

작성일 2022.10.24댓글 1건
    게시물 수정 , 삭제는 로그인 필요

비트 연산자 중에 not (~)에 대해 궁금한점이 있어요
a=60 이라하면
print('~a의 값은 무엇입니까? %d입니다'%(~a))
60을 이진수로 나타내면 0011 1100 = 60
not(~)을 쓰면 1100 0011 = 12
그러면 십진법으로 12가 나오는데 파이썬에서 출력하니 -61이 나오더라구요
왜 -61이 되는지 설명좀 해주실분..?



profile_image 익명 작성일 -

컴퓨터에서 음수를 나타내는 방법은 흔히 2의보수 표현법을 사용합니다.

2의보수를 구하는 방법은

1. 구하고자 하는 양수의 모든 bit 를 반전시킵니다. 즉, 0은 1로, 1은 0으로

==> 이것은 정확하게 ~ 연산자가 하는 일과 동일하죠.

이 결과로 얻어지는 값을 1의보수라고 합니다.

2. 1의 보수에 +1 을 합니다. 이 결과로 얻어지는 결과를 2의보수라고 합니다.

2의 보수의 특징을 살펴보면,

1. 2의 보수 표현법에서

양수는 첫 번째 bit(MSB) 가 0 이고 음수는 첫 번째 bit가 1 입니다.

2. 컴퓨터에서의 뺄셈을 2의보수의 덧셈으로 계산이 가능합니다.

(이것은 구글링 해보시기 바랍니다.)

이제,

60(10) = 0011 1100 1의보수 1100 0011 2의보수 1100 0100 = -60

입니다. 즉, 1100 0100 이 -60 입니다.

한편, 61 은

61(10) = 0011 1101 1의보수 1100 0010 2의보수 1100 0011 = -61

즉, 2의보수표현법에서 1100 0011 은 -61 이라는 값인 것이죠.

파이썬에서 정수형은 2의보수 표현법으로 음수를 나타냅니다.

파이썬 반복문 질문있습니다.

... ※ 질문주신 내용 이외에도, 파이썬 기초 프로그래밍과 관련하여 궁금한 것들이 있다면, 아래 제 블로그에 방문해 관련된 글을 참고하시기...

파이썬 질문 있습니다

... 제가 궁금한 점은 참, 즉 money 일 경우 택시를 타고 가라 라는 문장을 출력해야 하는데 여기서 money이다 라는 문 없이 어떻게 결과 값을 출력할 수 있는...

파이썬 질문있습니다.

... ※ 질문주신 내용 이외에도, 파이썬/데이터분석과 관련하여 궁금한 것들이 있다면, 아래 제 블로그에 방문해 관련된 글을 참고하시기...

파이썬 질문있습니다.

제가 파이썬 초보라서 여쭤 볼게 있습니다 ㅠㅠ 밑에 사진보면 오른쪽이 솔루션인데 몇가지 궁금한게 있습니다. 1.오른쪽대로 똑같이 따라서 해봤는데 No such...