• 카테고리

    질문 & 답변
  • 세부 분야

    기타 (커리어)

  • 해결 여부

    미해결

음수를 2진수 표현에서 부호화 절대치로 바꿀 때

22.01.13 13:46 작성 조회수 268

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
맨 앞자리 수를 음수일 때 1로 바꾸는게 아니라 반대로 바꾸는건가요??
10 = 0000 1010
-10 = 1000 1010
 
이렇게 바꾸셨는데 나중에 128 할 때는
128=1000 0000
-128=0000 0000
이렇게 바꾸시더라고요.. 부호화 절대치로 바꿀때요!
 
저는 음수일 때는 무조건 앞이 1이구나 하고 이해했는데 뒷부분 들으면서 헷갈려서 질문 남깁니다!
 

답변 1

답변을 작성해보세요.

1

_자몽소나기님의 프로필

_자몽소나기

2022.06.01

저도 이 부분이 헷갈려서 몇 번을 봤습니다.ㅋㅋ

혹시 다른 분들께라도 도움이 될까 싶어 답을 달아놓습니다.

 

부호화 절대치

+10=0000 1010

-10 = 1000 1010  으로 맨 앞자리를 1로 바꾸는 게 맞습니다.

 

다만, 질문하신 부.절 0000 0000값은 -128의 부.절이 아닌

+128(1000 0000)의 부호화 절대치값입니다.

보통 부.절은 양수에서 음수로 바꿀때 쓰는데

강의 중 선생님께서는 2진연산의 범위를 설명해주시는 과정에서 부호비트 자리가 양수라 1이 0으로 바뀌는 걸 보여주신거라고 생각합니다. 

 

그럼 강의 진행중 -128의 언급은 무엇이냐,

그 부분 화면을 잘 보시면 -128 계산값은 적지 않으시고 기존 +128 값에 밑줄만 그어서 설명하고 넘어가셔서 그렇습니다..ㅜㅜ

기존 0000 0000에 첫 자리를 1로 바꾸면(부.절. 음수니까) 1000 0000이 되는데 이는 곧 128입니다.

8비트 범위는 -127~+127이므로 말이 안 되는 계산입니다. 

부.절과 1의보수는 저 계산으로 값이 안 나오지만 2의보수의 경위 -128~+227까지 -128이 나오므로(-0이 없어서 숫자 한 개가 더 늘어남) 2의 보수가 범위가 더 넓다..그냥 그걸 설명해기위한 과정이었을 뿐이라고 생각합니다...

모두 화이팅.. 어렵네요ㅋㅋㅠ