inflearn logo
강의

Course

Instructor

Hong Jung-mo's C Programming: Learning by Doing

0.10 binary

8비트 2진수 변환시 왜 1을 더해야하나요?

52

captsong26980

3 asked

1

보수로 변환한 뒤, 더하기 1을 하는게 잘 이해가 안됩니다.

혹시 왜 더하기 1을 해야하는지 알 수 있을까요?

c

Answer 2

0

durams

안녕하세요? 질문&답변 도우미 durams입니다.

단순하게 이유를 말씀드리자면 컴퓨터에서 정수를 나타내기 위한 방식 중 하나인 2의 보수법의 규칙입니다.

과거에는 1의 보수법이라는 방식도 있었으나, 정수 0이 두 개의 비트 패턴으로 나타나는 등 몇 가지 단점 때문에 현재는 2의 보수법을 사용합니다. 부정 연산(negation) 시 비트 패턴을 뒤집고 1을 더하는 건 1의 보수법이 가지고 있던 단점을 없애기 위해 고안한 방법이라고 생각하시면 될 것 같습니다.

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 송영진님.

2진수에서 값을 부호 있는 숫자로 변환하거나 마이너스로 바꿀 때, 2의 보수라는 개념을 사용합니다. 추가적으로 설명드리면:

  1. 2의 보수 개념: 2진수의 값을 반대로 바꾸고(0을 1로, 1을 0으로) 1을 더하는 과정을 통해 부호를 바꿉니다. 이는 컴퓨터가 음수 연산을 효과적으로 처리할 수 있도록 해주는 방법입니다.

  2. 이유: 2의 보수를 사용하여 음수를 표현하면, 덧셈과 뺄셈 연산을 동일한 방식으로 처리할 수 있게 되어 효율적인 연산이 가능해집니다. 이러한 방식은 프로세서의 구조와 연관이 깊습니다.

  3. 예시: 만약 4비트 체계에서 5를 음수로 변환하고자 한다면, 2진수로 0101을 반전하여 1010을 만들고 여기에 1을 더하여 1011을 만들면 -5를 표현할 수 있게 됩니다.

관련된 질문을 다룬 게시물을 참조하시면 도움이 될 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.

1

43

3

main 함수에서 왜 int만 선언이 되는걸까요

1

51

2

혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?

1

46

1

프로토타입과 함수간의 인자 불일치

1

72

2

12.12 헤더 관련 질문

1

59

2

Visual Studio Community 2026 사용 문의

1

132

2

Q. 15:30, 부호가 있는 8비트 정수 질문

1

59

2

getchar(), putchar()

1

92

3

강의자리ㅛ

1

78

2

비주얼스튜디오코드로 공부해도 상관없나요?

1

112

2

소스파일안에 여러 파일

1

74

2

F5와 F7의 차이

1

75

2

c = TWO * (a+b); 에서 a와 b는?

1

58

2

; 세미콜론을 붙이는 기준에 문의

1

68

1

Step over 기능 문의

1

52

2

2.6 강의 따옴표 출력 규칙 문의

1

74

2

int main 함수 관련 오류 문의

1

67

2

13.4 words[0]

0

60

2

11.7 함수를 구현해 봤습니다.

1

62

2

11.6 직접 strcmp와 strncmp를 구현해 보았습니다.

1

64

2

11.6 my_strcat과 my_strncat을 구현해봤습니다.

1

53

2

11.6 fit_str함수를 구현해 봤습니다.

1

53

2

11.5 코드 구현

1

66

2

C언어 엔터

1

58

2