비트연산자 2의 보수
955
작성한 질문수 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
5
2
소리가 겹쳐서 들려요
0
16
2
데스크톱과 노트북 연결
0
15
0
dict, zip
0
16
2
노션 : 파트3번 링크와 권한 , 파트4번 권한요청, 파트 5번도 미리 요청 드립니다.
0
24
4
6-6 실습 문의
0
19
2
미션 06-02
0
20
2
yes24 수집 md 파일 만들 때
0
18
2
python main.py 실행시 게임이 실행이 안돼요
0
21
2
antigravity 대신 cursor를 활용해도 되나요?
0
24
1
뉴스 검색 분류 한도초과
0
32
2
완성자료
0
21
2
섹션5 노션링크 는 따로 없나요?
0
23
2
필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)
0
30
2
소수점 출력 질문입니다.
0
285
1
알고리즘 강의
0
232
0
얕은물 주피터 노트북
0
242
0
깊은물 셋 강의 영상 전반부가 삭제되었네요.
0
248
1
얕은물_인쇄용p169중첩함수 질문
0
292
1
홈페이지 링크 부탁드립니다.
0
281
1
input 함수 파일 문의
0
352
1
코드 다운로드 파일 주소 확인 요청
0
290
1
생선판매 while 구문 질문
0
276
1
in 구문에서 튜플 관련 질문
1
246
1





