inflearn logo
강의

Course

Instructor

Python Bootcamp

Catch the fish - Membership and identity operations, operator precedence

비트연산자 2의 보수

959

seungchul01181392

3 asked

1

2의 보수에 대한 설명에서

비트를 뒤집고 1을 더한 값을 기존의 수와 더하고 올림수를 버리면 0이 나온다는 것은 이해가 됐는데

설명과 ~ 연산자로 나온 값이랑의 관계성을 모르겠어요

a= 40이면 ~a = -41 이니 0b101000, -0b101001 이 2의 보수 관계인 것이 이해가 안되네요

python

Answer 3

1

seungchul01181392

-0b101001 이 실제로 표현을 하면 11011000으로 되어 있는 건가요?

아니면 ~a가 11011000으로 되어 있는 건가요?ㅜㅜ

너무 깊은 내용이면 깊은물까지 듣고 나서 다시 질문할게요

1

Hojun Lee

안녕하세요 승철님! :) 맞습니다. 그 관계로 이해가 안가시는 것이 맞아요.

이렇게 나오셔서 대 혼란이 있으셨죠?ㅜㅜ

python document(https://docs.python.org/3/reference/expressions.html?highlight=bitwise%20inversion) 를 보시면 '~'의 동작에 대해 아래와 같이 설명하고 있습니다.

The unary ~ (invert) operator yields the bitwise inversion of its integer argument. The bitwise inversion of x is defined as -(x+1). It only applies to integral numbers.

그래서 코드 상의 결과물로는 단순히 마이너스 부호로만 붙이는 것으로 끝나죠. 그런데, 보시면 아시겠지만 bit가 6개잖아요? 그럼 2개의 비트는 어디에 있는 것일까요? 아래 코드를 실행시켜 보시면 실제 컴퓨터에 저장되는 '실제 값'을 볼 수 있습니다.

코드도 남겨드립니다.

(-1).to_bytes(1, byteorder='little', signed = True), (-2).to_bytes(1, byteorder='little', signed = True)

위에 출력되는 값은 파이썬에서 '표현하는 양식'일 뿐이고, 실제 저장되는 바이트의 단위는 위와 같습니다.

\x뒤에 ff값은 11111111을 나타내고요.

fe는 11111110을 나타냅니다.

이제 2의 보수값이 (우리가 예상하고 원하는 값으로) 제대로 나오고 있죠.

표현식에서 반전을 하려면 xor를 하셔야 합니다.

얕은 물에서는 가볍게 훑고 넘어가시는 것이 좋습니다.ㅜㅜ

질문해주신 김에, 깊은 물에서 bit 연산을 좀 더 깊게 다뤄보는 챕터를 찍어놓을게요.

감사합니다.^^

0

Hojun Lee

넵! 말씀해주신 사항이 맞아요.

깊은 물 강의에 승철님이 질문해주신 내용을 '추가챕터'로 설명해 놓도록 하겠습니다.

감사합니다. 

수강기간 연장 문의드립니다

0

9

1

로지스틱 회귀 데이터 누락 관련 질문

0

8

1

수강기간 연장 문의드립니다.

0

9

1

27강 슬랙 테스트 부분도 누락된 것 같네요

1

24

2

이 정도로 관리를 안할꺼면 강의를 내려야 하는거 아닐까요?

0

12

0

실기 공부 시작 하려고 하는데요

0

29

2

22강 케글 연동 강의내용 누락된듯해요

1

21

2

작업형1 - 연습문제 1번 관련 질문입니다.

0

31

2

퍼블릭시티 결제 관련

0

19

1

강의 자료 16~39 관련

0

40

2

한국투자증권 미국 주식 매매 수수료와 환전 수수료가 높은 경우 자동매매 베개투자법을 적용해도 괜찮을까요?

0

39

2

강의자료 관련

0

27

1

오류 문의

0

35

2

안티그래비티 업데이트?

0

59

3

소수점 출력 질문입니다.

0

286

1

알고리즘 강의

0

235

0

얕은물 주피터 노트북

0

244

0

깊은물 셋 강의 영상 전반부가 삭제되었네요.

0

249

1

얕은물_인쇄용p169중첩함수 질문

0

295

1

홈페이지 링크 부탁드립니다.

0

281

1

input 함수 파일 문의

0

356

1

코드 다운로드 파일 주소 확인 요청

0

294

1

생선판매 while 구문 질문

0

282

1

in 구문에서 튜플 관련 질문

1

249

1