저기.. c언어 한가지 질문좀 부탁합니다..

글쓴이2013.10.29 23:08조회 수 1153댓글 7

  • 1
    • 글자 크기

지금 < 부호있는 데이터형의 음수 / 오버플로우 >부분을 보고있습니다..

그걸 보면서 이해가 안되는게,

음수형이 되었을때,

그것을 어떻게 읽어야하느냐입니다..

가령, 정수 10을 2의 보수법으로 -10을 만들어보면,

1111 1111 1111 0110

위와 같이 되는데,

이걸보고 "혹시, 숫자0을 양수일때 1로보고 숫자를 계산하고 음수를 붙이면 되는게 아닐까~?" 생각했습니다.

그런데, 오버플로우를 보니

 


1.jpg

위의 사진의 맨밑에 음수로 변한것을

 

위에 말했던 0과 1을 바꿔서 생각하고 숫자를 구하면,

 

2^14 + 2^13 + ... + 2^0 = - (2^15 - 1)

ㄴ이렇게 되어야하는데,

 

이번에는 또 그렇지 않고

 

-(2^15)더군요..

 

 

c언어에서 부호있는 정수의 음수는 어떻게 읽어야하는건가요,,?

 

===============================================================

 

혹시 양수일때의 0과 1을 바꿔서 생각하되,

 

나온숫자의 크기에 +1을 해주어야하나요?

 

만약 그렇다면 왜 +1을 해주어야 할까요..?ㅜㅜ

  • 1
    • 글자 크기

댓글 달기

  • 넘쉽당....ㄷㄷ
  • @육중한 파인애플민트
    글쓴이글쓴이
    2013.10.29 23:14
    아시면 설명좀 부탁드립니다 ㅠ
  • 양수의 경우 그냥 읽으면 되고,
    음수의 경우 2의 보수를 취하고, 부호를 붙여줍니다.
    글쓴이께서 설명하신 내용은 잘 이해가 되지 않네요.
    ----- ???
    이걸보고 "혹시, 숫자0을 양수일때 1로보고 숫자를 계산하고 음수를 붙이면 되는게 아닐까~?" 생각했습니다.
  • @적나라한 편백
    글쓴이글쓴이
    2013.10.29 23:30
    죄송합니다, 제가 설명을 잘못했나봐요 ㅠ

    일단, 궁금한것 = 음수 2진수를 10진수로 고칠려면 어떻게해야하나?

    ..이고요,

    "혹시, 숫자0을 양수일때 1로보고 숫자를 계산하고 음수를 붙이면 되는게 아닐까~?" <=이건 예를 들어 설명해볼게요
    ex) 1111 1111 1111 0110 이게 부호가 있는 정수데이터 일때,
    1. 위의 2진수에서, 0 => 1, 1 => 0과 같이 바꾸고 10진수를 구하면
    크기는 9이다.(즉, 숫자바꾼다음, 양수의 10진수값 구하는것처럼 크기구함)
    2. 1에서 구한값에 +1 해준다. 따라서, 9+1 = 10
    3. 원래 부호를 대입해준다. 따라서, -10


    제가 생각해본건 이거에요..
  • 예를들어 4비트의 이진수표현(최상위비트 sign 비트)
    5를 표현하면 0101 이겠죠?
    -(0*2^3) + 1*2^2 + 0*2^1 + 1*2^0 = 5
    이렇게 식이 세워지구요

    -5를 표현하면 2의 보수 취해서 1011 이죠
    -(1*2^3) + 0*2^2 + 1*2^1 + 1*2^0 = -5

    이렇게 나옵니다 sign 비트는 -부호 붙여서 계산하면 됩니다
  • @활달한 쪽동백나무
    글쓴이글쓴이
    2013.10.30 01:26
    아ㅠㅠ 정말감사합니다 ㅠㅠ
  • 아 저그림ㅠ
번호 제목 글쓴이 날짜
공지 욕설/반말시 글쓰기 권한 영구 정지10 저렴한 개불알꽃 2019.01.26
공지 식물원 이용규칙 (2018/09/30 최종 업데이트) - 학생회 관련 게시글, 댓글 가능17 흔한 달뿌리풀 2013.03.04
168339 오늘은 어버이의 날입니다 유치한 곰취 2026.05.08
168338 뭐여 주식 왜 이렇게 올랐어여 끔찍한 질경이 2026.05.06
168337 간만에 3일 휴가 ㅠㅠㅠㅠ2 활달한 머루 2026.05.01
168336 여행 많이 다니시는 분들은 저축은 어떻게 하시나요 따듯한 애기봄맞이 2026.04.26
168335 오늘 만덕센텀고속화도로 타봤는데 슬픈 호두나무 2026.04.23
168334 2년전에 건강검진 안 받고 올해 받았는데 다친 도깨비바늘 2026.04.19
168333 오피스텔 사는데 위층에서 물을 너무 많이 쓰네요 도도한 긴강남차 2026.04.14
168332 친구구합니다1 발랄한 왕원추리 2026.04.06
168331 그래도 요새는 영화관에서 나름 볼만한 영화가 꽤 있네요 무좀걸린 갈참나무 2026.04.04
168330 날씨는 좀 풀렸는데 세상은 아직 전쟁통이네요 기발한 개연꽃 2026.03.27
168329 예전에 자취하면서 먹었던 컵밥 같은 게 요샌 많이 없네요1 나쁜 큰괭이밥 2026.03.20
168328 15학번 동기들 잘지내나요3 근육질 먹넌출 2026.03.19
168327 이제 좀 전쟁이 끝나려나요 해박한 청가시덩굴 2026.03.18
168326 기름값이 너무 올랐던데 고상한 긴강남차 2026.03.14
168325 요새 주변에 애를 낳는 사람들이 많더라고요2 친근한 개양귀비 2026.03.10
168324 결국 이란에서 전쟁이 났네요 ㄷㄷㄷㄷ 저렴한 배롱나무 2026.02.28
168323 대규모 자료 잘 분석해주는 AI 뭐 있을까요1 무례한 갈참나무 2026.02.26
168322 요새 코인 노래방이 많이 없어지나요 해맑은 큰괭이밥 2026.02.23
168321 피누 복구되었네요 ㅠㅠㅠㅠ5 끔찍한 봉선화 2026.02.22
168320 [레알피누] 교양선택 5개 영역이상 이수에 브릿지 포함되나요?1 부자 꽈리 2026.01.12
첨부 (1)
1.jpg
1.61MB / Download 2