본문 바로가기
공부/기타

왜 byte형 변수에는 -128부터 127까지의 정수만 넣을 수 있을까?

by 아찌방 2025. 5. 10.

 

우선 byte는 8bit라는 것을 알아야합니다.

단위  기호  크기 (기준: 바이트) 설명
비트 bit 1 bit 데이터의 최소 단위 (0 또는 1)
바이트 B 8 bits 1문자 = 1바이트 (ASCII 기준)
킬로바이트 KB 1,024 B 약 1천 바이트
메가바이트 MB 1,024 KB = 1,048,576 B 약 100만 바이트
기가바이트 GB 1,024 MB = 1,073,741,824 B 약 10억 바이트
테라바이트 TB 1,024 GB = 1,099,511,627,776 B 약 1조 바이트

 

bit < byte < KB < MB < GB < TB

 

최근 일상생활에서 사용하는 용량은 보통 기가바이트(GB), 테라바이트(TB)일 것입니다.

 

하지만 제가 어렸을때는 1GB면 진짜 큰 거였습니다.

 

제가 쓰던 MP3가 500MB였던가 그런 거 같은데....

 

아무튼 이게 처음의 시작은 bit란 말입니다.

 

bit는 0과 1로 이루어진, 컴퓨터가 이해할 수 있는 가장 작은 단위의 데이터입니다.

 

 

컴퓨터하면 떠오르는 장면이죠?

 

이런게 다 이유가 있는 겁니다.

 

넘어가서,

 

이런 bit 8개로 이루어진게 바로 Byte입니다.

 

그러면서 표현할 수 있는 숫자가 2의 8승 즉, 256개 인거죠.

 

이를 0을 기준으로 나누기에

 

1 byte가 -128부터 127까지를 나타낼 수 있는 겁니다.

 

좀 더 자세히 이야기하면,

 

대부분의 언어는 2의 보수(Two's complement) 방식을 사용하여 음수를 표현합니다.

 

이게 무엇이냐?

 

가장 왼쪽의 1비트를 부호 비트(sign bit)로 사용하는 겁니다.

 

0이면 양수, 1이면 음수

 

그렇기에 숫자를 표현할 때 사용할 수 있는 비트의 수는 8 - 1 = 7비트인거죠

 

그렇기에

 

최솟값 = -2의 7승 = -128

최댓값 = 2의 7승 - 1(0을 제외) = 127

 

즉, 128 + 127 + 1 = 256개가 되는 겁니다.

 

이와 똑같은 방식으로

자료형  크기(Byte)  비트 수  표현 범위
byte 1 8 -128 ~ 127
short 2 16 -32,768 ~ 32,767
int 4 32 -2,147,483,648 ~ 2,147,483,647
long 8 64 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807

 

이렇게 자료형마다 표현할 수 있는 범위가 달라지는 겁니다.

728x90