비트연산자 2의 보수
1013
投稿した質問数 3
2의 보수에 대한 설명에서
비트를 뒤집고 1을 더한 값을 기존의 수와 더하고 올림수를 버리면 0이 나온다는 것은 이해가 됐는데
설명과 ~ 연산자로 나온 값이랑의 관계성을 모르겠어요
a= 40이면 ~a = -41 이니 0b101000, -0b101001 이 2의 보수 관계인 것이 이해가 안되네요
回答 3
1
-0b101001 이 실제로 표현을 하면 11011000으로 되어 있는 건가요?
아니면 ~a가 11011000으로 되어 있는 건가요?ㅜㅜ
너무 깊은 내용이면 깊은물까지 듣고 나서 다시 질문할게요
1
안녕하세요 승철님! :) 맞습니다. 그 관계로 이해가 안가시는 것이 맞아요.
이렇게 나오셔서 대 혼란이 있으셨죠?ㅜㅜ
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개의 비트는 어디에 있는 것일까요? 아래 코드를 실행시켜 보시면 실제 컴퓨터에 저장되는 '실제 값'을 볼 수 있습니다.

코드도 남겨드립니다.
위에 출력되는 값은 파이썬에서 '표현하는 양식'일 뿐이고, 실제 저장되는 바이트의 단위는 위와 같습니다.
\x뒤에 ff값은 11111111을 나타내고요.
fe는 11111110을 나타냅니다.
이제 2의 보수값이 (우리가 예상하고 원하는 값으로) 제대로 나오고 있죠.
표현식에서 반전을 하려면 xor를 하셔야 합니다.
얕은 물에서는 가볍게 훑고 넘어가시는 것이 좋습니다.ㅜㅜ
질문해주신 김에, 깊은 물에서 bit 연산을 좀 더 깊게 다뤄보는 챕터를 찍어놓을게요.
감사합니다.^^
안녕하세요 강사님
0
6
1
[시험 준비] AICE Associate 단기간 합격을 위한 모의고사 활용 방법 문의
1
9
1
이론재탕만 눈치챘어도
0
10
1
25-3년도 이론문제 재탕
0
10
1
25-3년도 코드문제 재탕
0
9
0
출력값 문의
0
11
2
인코딩을 다 꼭 해봐야하는지
0
9
1
LLM 시대에서 머신러닝 개념 이해 필요성 문의
0
12
0
25-2 분기커버리지
0
15
0
25-2 이론 재탕
0
22
1
25-1 이론 재탕
0
21
1
강의 잘보고 있습니다. 강의 파일을 어디서 찾아야 되는지 몰라서 여쭤 봅니다.
0
19
1
서브넷 마스크
0
31
1
모의고사 1회 계산문제 2개 맞았는데
0
49
2
소수점 출력 질문입니다.
0
329
1
알고리즘 강의
0
249
0
얕은물 주피터 노트북
0
264
0
깊은물 셋 강의 영상 전반부가 삭제되었네요.
0
273
1
얕은물_인쇄용p169중첩함수 질문
0
328
1
홈페이지 링크 부탁드립니다.
0
310
1
input 함수 파일 문의
0
387
1
코드 다운로드 파일 주소 확인 요청
0
323
1
생선판매 while 구문 질문
0
319
1
in 구문에서 튜플 관련 질문
1
282
1

