-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
미해결
32비트에 음수 양수 다 있으려면 2^32 나누기 2 한만큼이 최대값이겠네요?
22.03.16 23:23 작성 조회수 404
1
32비트에 음수 양수 다 있으려면 2^32 나누기 2 한만큼이 최대값이겠네요?
2147483647이라는 10진수를 2진수로 변환해보니
1만으로 32비트를 채우더라구요 맞나요?
11111111111111111111111111111111 -> 2147483647(10진수)
그러면 -2147483647을 표현하려면 1의보수인
0만으로 32비트를 채우고나서 맨오른쪽자리를 1로 바꿔주면
그게 음수형태로 나타내는거죠?
00000000000000000000000000000001 이렇게요
근데 위의 2진수를 10진수로 나타내면 결국 1 아닌가요?
답변을 작성해보세요.
1
나르비
2022.03.17
안녕하세요
int 형을 32bit 에 저장할 때, 맨 앞의 1bit 는 "부호 비트" 로 사용됩니다.
0일 경우에는 + , 1일 경우에는 -로 표현하는 방식입니다.
관련해서 한 번 찾아보신다면 더 많은 정보를 얻을 수 있을 겁니다.
아래에 참고하실만한 자료를 남겨드립니다.
seung lee
질문자2022.03.17
아 자료보고 이해했습니다!!
0111 1111 1111 1111 1111 1111 1111 1111 이 숫자가 int 양수의 최대치이고
여기서 1을 더하면
1000 0000 0000 0000 0000 0000 0000 0000 이렇게 되는데
맨 앞이 1이 와서 음수가 되어버린거고 이 값을 알려고 2의 보수법으로 바꿔주면
1000 0000 0000 0000 0000 0000 0000 0000 이값이되고 이 값을 10진수로 바꾸면
2^31 이라는 값에 음수의 형태를 띈다는 거죠?
답변 1