티스토리 뷰
1. 정의
각 비트를 반전시키는 역할을 합니다. 즉, 0을 1로, 1을 0으로 바꾸는 연산
2. 계산방법
예) ~5
1) 2진수로 변환 :5를 2진수로 변환하면 00000101
2) 비트반전 : 00000101 비트반전 → 11111010
3) 10진수로 변환: 11111010 비트반전+1 → 00000101 +1 = 00000111 →6이고, 1로 시작한 음수이므로 -6
▶ 어차피 다시 반전해서 +1을하고, 마지막에 -부호를 달아주면 되기 때문에
결과적으로는 (십진수+1) 후 부호반전을 해주면 된다.
3. 음수의 2진수 변환(2의 보수: two's complement )
1) 양수의 이진수로 변환: 5를 8비트 이진수로 표현하면: 00000101
2) 00000101의 0과 1 반전: 11111010
3) 1을 더함: 11111010 + 1 = 11111011
4. 부호 비트와 2의 보수 표현
- 2의 보수 표현에서는 가장 왼쪽 비트(MSB, Most Significant Bit)가 부호를 나타낸다.
1) MSB가 0이면 양수
2) MSB가 1이면 음수
- 8비트 이진수의 경우 맨 왼쪽의 비트는 부호, 나머지 7비트가 크기를 나타내므로
1) 양수는 00000000 (0)에서 01111111 (127)까지
2) 음수는 10000000 (-128)에서 11111111 (-1)까지
5. 2의 보수로 표현된 음수 이진수의 10진수 변환
방법1) 제일 왼쪽 비트가 1인 경우 -를 곱하고, 나머지는 양수로 계산하여 더한다.
예) 11110001 → -128 + 64 + 32 + 16 + 1 = -15
방법2) 127보다 큰 수가 나올 경우(ex.10000000=128) 음수라는 것을 알 수 있다. 즉, 127보다 큰 수가 나올 경우 음수 변환을 위해 256(2^8)을 빼준다.
예) 11110001은 241>127이므로, 241-256 = -15
방법3) 비트반전 + 1
예) 11110001 비트반전 → 00001110 + 1 → 00001111 → 십진수로 15, 1로 시작하여 음수이므로 -붙여줌 → -15
'AI > Python' 카테고리의 다른 글
[python] pickle, with (3) | 2024.12.02 |
---|---|
[python] Class, self, __init__, 오버라이딩 (2) | 2024.11.27 |
[프로그래머스 입문] dict, math,sort와 sorted에 key값 넣기, 이진수와 십진수 변환, 이차원 배열의 최댓값과 최솟값 (0) | 2024.06.18 |
[python] 예외처리, 파일 다루기 (0) | 2024.06.18 |
[python] 모듈과 프로젝트 (0) | 2024.06.17 |
- Total
- Today
- Yesterday
- 30분
- 오블완
- 기초
- 아침
- llm
- IH
- 영어회화
- C언어
- 고득점 Kit
- 프로그래머스
- Python
- 줄넘기
- 미라클모닝
- opic
- 빅데이터 분석기사
- 갓생
- 실기
- 아침운동
- 오픽
- 다이어트
- Ai
- 습관
- 운동
- 티스토리챌린지
- 루틴
- ChatGPT
- 경제
- SQL
- 뉴스
- 스크랩
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |