본문 바로가기

JAVA

[JAVA] 기초문법 - 변수와 자료형(1)

컴퓨터는 0,1 밖에 인식하지 못합니다. 즉 컴퓨터는 2진수를 인식합니다.

bit: 컴퓨터가 표현하는 데이터의 최소 단위입니다. 2진수 하나의 값을 저장할 수 있는 메모리 크기를 의미합니다.

byte: 1byte=8bit 바이트는 8비트가 모여 1바이트가 됩니다.

10진수 2진수
0 00000000
1 00000001

2진수

00000

00001ㅡ>2^0=1

00010ㅡ>2^1=2

00011ㅡ>2^1+2^0=3

00100ㅡ>2^2=4

10진수 16진수
9 9
10 A
11 B

2진수 에서 10 = 00001010

16진수 에서 10 = 0A

2진수에서는 4비트로 표현해야하는걸 16진수면 간단히 표현가능합니다.

(ex 16진수는 주소값에서 많이 사용됩니다.)

자바에서 //은 주석을 의미합니다. 주석은 컴파일 할때 포함되지 않습니다. 자바에서 2진수 10진수 8진수 16진수 표현방법은 다음과 같습니다.

int num=10; //10진수 10

int bNum=0B1010;// 2진수 10

int oNum=012; //8진수 10

int hNum=0XA;//16진수 10

2진수는 OB를 앞에 붙여주고 8진수는 0을 16진수는 0X를 붙여줍니다.

다음과 같이 코딩한 후 출력결과를 살펴보면 다음과 같습니다.

진수에 맞게 모두 10이 출력된 것을 확인 할 수 있습니다.

비트에서 가장 왼쪽 비트를 MSB 부호비트라고 부릅니다. "0"0000000

00000101은 5를 의미합니다.

그렇다면 -5는 10000101일까요?

5와 -5를 더하면 0이 돼야 하기 때문에 위 두 수를 더하면 0이 되지 않는 다는 것을 알 수 있습니다.

음수 만드는법은 다음과 같습니다.

00000101ㅡ>5

1의 보수를 취함:11111010

두개 더하면 11111111

+1하면 1 00000000

맨 앞에 1을 날리면 0이 완성됩니다.

즉, 1의 보수를 취하고 1을 더하면 음수가 됨.

음수값은 역으로 변환해서 양수값을 구해야 어떤 값의 음수 인지 알 수 있습니다.